没有消息存储库的JMS队列的消息处理器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有消息存储库的JMS队列的消息处理器相关的知识,希望对你有一定的参考价值。
是否可以将JMS消息发送到Message Broker中的JMS队列,以便由没有消息存储的消息处理器进一步处理?
EG
<resource methods="PUT" uri-template="/{itemName}">
<inSequence>
<property name="transport.jms.ContentTypeProperty" value="Content-Type" scope="axis2"/>
<property name="HTTP_METHOD" expression="get-property('axis2','HTTP_METHOD')" scope="transport" type="STRING"></property>
<property expression="json-eval($.barcode)" name="uri.var.barcode" scope="default" type="STRING"/>
<log level="full">
<property expression="get-property('uri.var.barcode')" name="barcode"/>
</log>
<payloadFactory media-type="json">
<format>
{"barcode": "$1"}
</format>
<args>
<arg evaluator="xml" expression="get-property('uri.var.barcode')"/>
</args>
</payloadFactory>
<send>
<endpoint>
<address uri="jms:/myqueue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=conf/jndi.properties&transport.jms.DestinationType=queue&transport.jms.ContentTypeProperty=ContentType"/>
</endpoint>
</send>
</inSequence>
<outSequence/>
</resource>
假设我有一个接收JSON主体的简单API,我想将它发送到名为myqueue的队列,我希望消息处理器能够读取消息以便进一步处理。
或者是否有其他方法可以实现类似的概念?
答案
如果您的要求仅仅是消耗来自特定队列的消息以进行进一步处理,则以下可能是更好的适合而不是消息处理器,它们被设计用于临时存储消息的消息存储:
- JMS入站端点(https://docs.wso2.com/display/EI611/Sample+901%3A+Inbound+Endpoint+JMS+Protocol+Sample)
- JMS侦听器代理(https://docs.wso2.com/display/EI611/The+ESB+Profile+of+WSO2+Enterprise+Integrator+as+a+JMS+Consumer)
以上是关于没有消息存储库的JMS队列的消息处理器的主要内容,如果未能解决你的问题,请参考以下文章
每 15 条 JMS 消息卡在队列中,直到第 1 条消息完成