我一直试图使用camel-cxf组件将JSON请求发送到Activemq队列,以公开RESTful服务。以下是我的路线代码:
<route>
<from uri="cxfrs:bean:rsServer" />
<log message="${body}"/>
<to uri="activemq:queue:testQueue" pattern="InOnly" />
</route>其中rsServer是公开的RESTful服务。
<cxf:rsServer id="rsServer" address="/services"
serviceClass="com.mayank.restservice.resource.RestfulResource">
<cxf:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
<bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" />
</cxf:providers>
<cxf:extensionMappings>
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</cxf:extensionMappings>
</cxf:rsServer>在调用web服务时,Activemq确实在队列中接收项,但在查看消息时:
javax.jms.JMSException:未能从内容构建主体。代理不可用的可序列化类。原因: java.lang.ClassNotFoundException: org.apache.cxf.message.MessageContentsList
会显示出来。请告诉我是什么问题,因为我是全新的骆驼。
发布于 2016-05-04 05:47:49
如果要向jmsMessageType=Text发送对象,则可能需要为 ActiveMQ 组件使用选项,后者扩展了jms组件。
之后,要将消息放到ActiveMQ队列中,对象需要是可序列化的,因为错误是暗示的。
在您的示例中,一旦cxfrs组件完成,exchange主体就是一个不可序列化的MessageContentsList对象。
在这里你可以做两件事:
有关详细信息,请参阅http://camel.apache.org/bean.html和http://camel.apache.org/convertbodyto.html以及http://camel.apache.org/cxfrs.html和http://camel.apache.org/jms.html。
https://stackoverflow.com/questions/36915029
复制相似问题