我是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个
答案 0 :(得分:0)
您应该将camel-jaxb添加到类路径中,因此Camel可以将salesforce DTO对象(它们是JAXB已注释)转换为流中的XML表示形式,文件端点可以使用它。
答案 1 :(得分:0)
首先尝试转换为字符串:
from("direct:query")
.to(...)
.convertBodyTo(String.class)
.to(...)