为什么我的驼峰路线尝试回复JMS消费者?

为什么我的驼峰路线尝试回复JMS消费者?,jms,cxf,apache-camel,activemq,Jms,Cxf,Apache Camel,Activemq,我在Spring中配置了一个apachecamel路由,它从JMS(ActiveMQ)队列获取消息,转换消息,并使用CXF组件将结果发送到web服务。这一切都很好,但我总是在路由结束时抛出一个异常,即CXF响应对象不可同步,这是指它试图将exchange/消息体转换回JMS消息。但是为什么呢 以下是我的骆驼上下文摘录:- <route> <from uri="jms:queue:transactions" /> <process ref="convertTo

我在Spring中配置了一个apachecamel路由,它从JMS(ActiveMQ)队列获取消息,转换消息,并使用CXF组件将结果发送到web服务。这一切都很好,但我总是在路由结束时抛出一个异常,即CXF响应对象不可同步,这是指它试图将exchange/消息体转换回JMS消息。但是为什么呢

以下是我的骆驼上下文摘录:-

<route>
  <from uri="jms:queue:transactions" />
  <process ref="convertToFormatForCXF" />
  <to uri="cxf:bean:myService?defaultOperationName=process" />
  <stop />
</route>
即使是也不能阻止堆栈跟踪。现在我发现,如果我将disableReplyTo=true添加到JMS使用者,那么stacktrace不会显示哪个是优秀的

我想我只是想弄清楚发生了什么?是否将CXF响应对象添加到“事务”JMS队列?我的意图是,一旦CXF生产商完成,流程就会停止

有人能帮我理解吗?Camel文档对此没有多大帮助

是否将CXF响应对象添加到“事务”JMS队列

不会。它会被添加到临时队列中

JmsProducer检测InOut并提供带有要使用的应答目标的JMSReplyTo头。默认情况下,Camel使用临时队列,但您可以使用端点上的replyTo选项指定固定回复队列(请参阅下面关于固定回复队列的更多信息)。 Camel将自动设置侦听回复队列的使用者,因此您不应执行任何操作

EndpointMessageListener        WARN  Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException - java.lang.RuntimeException: net.sophis.soa.dataexchange.LogoutResponse]
org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: net.sophis.soa.dataexchange.LogoutResponse
at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1363)
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:124)