java.io.IOException:org.apache.camel.NoTypeConversionAvailableException

时间:2017-09-29 07:18:30

标签: java jaxb apache-camel marshalling

我是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&amp;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)并进行相同的修复。但我一直在收到错误。我究竟做错了什么。

非常感谢。

1 个答案:

答案 0 :(得分:1)

不确定这是什么问题,但请检查一下。

首先,你是否正在使用正确的类? 异常说com.test.rqst.InitiateReq,而在你的代码中,你告诉JAXB编组一个不同的包:<jaxb contextPath="com.scb.s2b.application.pymt.service.payment.stoppymt.rqst"/>

第二,你告诉JAXB关于InitiateReq班吗? 在同一个包中创建一个名为jaxb.index的文件,并插入要编组/解组的类的名称(在您的情况下只有一行InitiateReq