【发布时间】:2014-03-19 17:13:53
【问题描述】:
假设有一个 ActiveMQ 作为 JMS 代理,它由基于 java 的主系统提供。
其中一个消费者只能使用 MSMQ(我们对此无能为力)
问题有没有一种简单的方法可以将 ActiveMQ 主题中 jms 消息中的 jms 文本转发到 MSMQ 目标的某些消息?
底层 jms 消息包含 xml 文件的文本。
【问题讨论】:
标签: jms activemq msmq messaging
假设有一个 ActiveMQ 作为 JMS 代理,它由基于 java 的主系统提供。
其中一个消费者只能使用 MSMQ(我们对此无能为力)
问题有没有一种简单的方法可以将 ActiveMQ 主题中 jms 消息中的 jms 文本转发到 MSMQ 目标的某些消息?
底层 jms 消息包含 xml 文件的文本。
【问题讨论】:
标签: jms activemq msmq messaging
取决于您的偏好,但 ActiveMQ 中的简单 Camel route 将消息发送到 MSMQ 可以轻松做到这一点 - 假设您在 Windows 上运行 AMQ。
Camel 并不真正支持 MSMQ,但您可以使用一些 simple java lib 在 Java 处理器内调度消息。
【讨论】:
<camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <route> <from uri="activemq:com.acme.MyQueue"/> <to uri="msmq:com.acme.SomeOtherQueue"/> </route> </camelContext>?
public class MsmqSenderBean{ public void send(String text){ Queue queue= new Queue(fullname); String label="testmessage"; byte[] correlationId = { 0,2,4,6,8,9 }; Message msg= new Message(text, label, correlationId); queue.send(msg); } } 在 camel.xml 中作为 spring bean 连接并使用 <to uri="bean:msmqSenderBean"/> 调用您可能希望通过可配置的队列名称等使其更加灵活。