使用Camel throws org.apache.camel.NoTypeConversionAvailableException提取Salesforce数据

时间:2013-12-26 13:25:51

标签: salesforce apache-camel

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

代码段:

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 { “完成”:真实的, “总计TOTALSIZE”:280, “记录”:[......]}     at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:181)     at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99)     ......还有31个

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

首先尝试转换为字符串:

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