【发布时间】:2014-05-08 22:37:45
【问题描述】:
我需要定义一个从 Topic 读取消息(具有 xml)并将其解组到 java bean 的路由。
之前我使用 spring JmsTemplate 来管理主题的 connectionFactory,我的路线看起来像这样(它工作得很好)
消息转换器本质上在fromMessage() 方法中返回TextMessage 实例
JaxbDataFormat dataFormat = new JaxbDataFormat();
dataFormat.setContextPath("com.somepath.xml");
from("jms:topic:myTopic?transacted=true&connectionFactory=myJmsConnectionFactory&messageConverter=#myMessageConverter")
.transacted()
.unmarshal(dataFormat)
.routeId("myRouteId")
现在,我使用 org.springframework.jms.listener.DefaultMessageListenerContainer 连接到这个持久主题,而不是 JmsTemplate。
(也是因为它支持异步模式)
为此,我编写了自己的消息侦听器,它实现了javax.jms.MessageListener,并阅读了onMessage() 中的消息。但是我不能像使用 JmsTemplate 时那样从这里返回 TextMessage。
我不知道如何在路由定义中配置它以便它仍然支持解组?
【问题讨论】:
标签: java spring jms apache-camel spring-jms