我是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)
并重现相同的内容。但是我一直在出错。我究竟做错了什么。非常感谢。
最佳答案
不确定这是问题所在,但请检查一下。
首先,您在编排正确的课程吗?com.test.rqst.InitiateReq
异常,在代码中,您告诉JAXB封送另一个包:<jaxb contextPath="com.scb.s2b.application.pymt.service.payment.stoppymt.rqst"/>
其次,您是否向JAXB讲述了InitiateReq
类?
在相同的程序包中创建一个名为jaxb.index
的文件,并插入您要编组/解组的类的名称(在您的情况下,只有带有InitiateReq
的行)