是否可以使用具有以下属性的同步camel activemq队列(例如MY_QUEUE):
并从EXT_QUEUE.RES填充MY_QUEUE的响应正文,其中MY_QUEUE,EXT_QUEUE.REQ和EXT_QUEUE.RES都是activemq队列。
E.g。 MY_QUEUE ---> EXT_QUEUE.REQ
如果是这样,我该如何配置呢?
谢谢!
答案 0 :(得分:0)
我认为你想要的是沿着这条路走的路线:
<route>
<from uri="activemq:queue:MY_QUEUE?exchangePattern=InOut"/>
<bean ref="myConverter" method="prepExternalCall"/>
<enrich uri="activemq:queue:EXT_QUEUE.REQ?replyTo=EXT_QUEUE.REQ.RES&replyToType=Shared"/>
<bean ref="myConverter" method="postProcessResponse"/>
</route>
方法postProcessResponse(Exchange ex)
返回后,如果发件人设置了JMS reploy-to destination,则交换将被发送回MY_QUEUE(由查询参数exchangePattern=InOut
强制执行)。处理是同步的,因为只有在发送了对当前消息的响应后才从MY_QUEUE中获取下一条消息。