我使用的是wso2esb4.7.0和ActiveMQ 5.8.0版本 我按照wso2esb文档提供了存储和转发邮件存储策略 但我不想要商店我只想消费那些已经存储过的消息 通过我的客户端应用程序,我希望每隔5秒汇集一次这些消息 在使用ActiveMq的wso2esb jms中是否可行 你会写代理的示例代码
<messageProcessor name="Duplicate5" class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" messageStore="Duplicate" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="interval">1000</parameter>
<parameter name="message.processor.reply.sequence">fault</parameter>
</messageProcessor>
我试过这个,但它不起作用
答案 0 :(得分:0)
要从队列中提取消息,您需要使用JMS传输...检查样本的JMS代理..
答案 1 :(得分:0)
消息存储以可序列化Java对象的形式保留消息。这可能包含某些基础信息(例如:属性),当您在ActiveMQ控制台中查看消息详细信息时,这些信息在消息中不可见。消息处理器在处理消息时使用由商店存储的这种信息。因此,据我所知,如果你想使功能正常,消息存储和消息处理器应该一起使用。
如果您直接将收到的邮件存储在ActiveMQ队列中,则可能必须手动配置邮件使用者。检查这个用例[1]。
还要查看这篇博文示例以获得一个想法[2]。
[1] http://docs.wso2.org/wiki/display/ESB470/ESB+as+a+JMS+Consumer
[2] http://nuwanwimalasekara.blogspot.com/2013/04/jms-proxy-service-using-wso2-esb.html
希望这有帮助。
答案 2 :(得分:0)
您不能单独使用消息处理器,您必须具有消息存储和消息处理器的组合。如果你想在一段时间后理解behavior of the Message Store and Message processor refer the blog。
如果要使用ESB从JMS使用listen / pull,则必须使用ESB as a JMS Consumer。请进一步参考文档中的实施细节。