我是Apache Camel和Blueprint DSL的新手,我正在尝试使用jaxb将bean封送到xml,但得到以下异常:
java.io.IOException:org.apache.camel.NoTypeConversionAvailableException:没有可用类型转换器从类型:com.test.rqst.InitiateReq转换为所需类型:java.io.InputStream,其值为com.test.rqst .InitiateReq @ 681d07ed
我的blueprint.xml如下
<bean id="testBean2" class="com.test.utility.StopTestDummy" />
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="timerToLog">
<from uri="timer:foo?period=1000&repeatCount=1"/>
<bean id="testCastor" ref="testBean2"
method="setDummyValues" />
<marshal>
<jaxb prettyPrint="true" contextPath="com.scb.s2b.application.pymt.service.payment.stoppymt.rqst"/>
</marshal>
<log message="After Marshalling ${body}"/>
<to uri="mock:result"/>
</route>
</camelContext>
setDummyValues
类中的方法StopTestDummy
正在创建我想要的POJO(InitiateReq)
并进行相同的修复。但我一直在收到错误。我究竟做错了什么。
非常感谢。
答案 0 :(得分:1)
不确定这是什么问题,但请检查一下。
首先,你是否正在使用正确的类?
异常说com.test.rqst.InitiateReq
,而在你的代码中,你告诉JAXB编组一个不同的包:<jaxb contextPath="com.scb.s2b.application.pymt.service.payment.stoppymt.rqst"/>
第二,你告诉JAXB关于InitiateReq
班吗?
在同一个包中创建一个名为jaxb.index
的文件,并插入要编组/解组的类的名称(在您的情况下只有一行InitiateReq
)