【问题标题】:Extracting Salesforce data using Camel throws org.apache.camel.NoTypeConversionAvailableException使用 Camel 提取 Salesforce 数据会引发 org.apache.camel.NoTypeConversionAvailableException
【发布时间】:2013-12-26 13:25:51
【问题描述】:

我是 Apache Camel 的新手,正在开发一个简单的 Java 程序,该程序可以使用 Apache Camel 提取 Salesforce 自定义对象数据。在运行程序时,它会抛出 org.apache.camel.NoTypeConversionAvailableException。对象 QueryRecordsLine_Item__c 和 Line_Item__c 实现了 Serializable 接口。请帮我解决这个问题。

代码sn-p:

from("direct:query") .to("salesforce:query?sObjectQuery=SELECT name, Unit_Price__c, Units_sold__c, Merchandise__c, Invoice_Statement__c from Line_Item__c&sObjectClass=" + QueryRecordsLine_Item__c.class.getName())
.to("file:E:\\ajagan\\datafiles\\out");

例外:

原因:org.apache.camel.NoTypeConversionAvailableException:没有类型转换器可用于从类型:org.apache.camel.component.salesforce.dto.generated.QueryRecordsLine_Item__c 转换为所需类型:java.io.InputStream with value {“完成”:true,“totalSize”:280,“记录”:[.....]} 在 org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:181) 在 org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99) ... 31 更多

【问题讨论】:

  • 你的项目构建路径中有camel-salesforce jar文件吗?
  • 是的,我有。它已作为我的 maven 脚本的一部分添加。

标签: salesforce apache-camel


【解决方案1】:

您应该将 camel-jaxb 添加到类路径中,以便 Camel 可以将 salesforce DTO 对象(它们带有 JAXB 注释)转换为文件端点可以使用的流中的 XML 表示。

【讨论】:

【解决方案2】:

你先尝试转换成字符串怎么样:

from("direct:query") 
.to(...)
.convertBodyTo(String.class)
.to(...)

【讨论】:

  • 仍然是同样的错误@ezzadeen。早些时候我尝试使用 .convertBodyTo(InputStream.class)
猜你喜欢
  • 2017-12-02
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 2011-11-22
  • 2021-10-19
  • 1970-01-01
  • 2013-05-29
  • 2019-07-20
相关资源
最近更新 更多