1

这是How to use Mule Expression in JMS:selector的延续,但问题不同。我正在使用 mulerquester 读取队列,如下所示。

<mulerequester:request config-ref="Mule_Requester" resource="wmq://REPLY.QUEUE?selector=JMSCorrelationID%3D'#[sessionVars.myCorrelationId]'" doc:name="Mule Requester" timeout="120000"/>

如果我有一个 wmqConnector 但我的 mule 项目中有 2 个 wmq 连接器(wmqconnector 和 wmqconnector1),则它可以工作,指向不同的服务器。在运行时,当 mulerquester 解析“资源”中给出的 URL 时,遇到 2 个与 wmq 协议匹配的连接器,我收到以下错误消息“至少有 2 个连接器与协议“wmq”匹配,因此要使用的连接器必须是使用“连接器”属性/属性在端点上指定。配置中支持“wmq”的连接器是:wmqConnector1、wmqConnector、(java.lang.IllegalStateException)”。我不确定如何告诉 mulerequester 使用哪个 wmqConnector。

我参考了 mulerequester 的 mule 文档,但找不到任何解决方案。有什么建议么?

4

2 回答 2

2

将连接器作为 uri 参数传递,如下所示:

<mulerequester:request config-ref="Mule_Requester" resource="jms://input?connector=AMQConnector1" doc:name="Request a message from a queue" />
于 2015-10-21T18:15:52.300 回答
0

这是我根据 Ryan 的建议修改后的 mulerquester。它同时使用连接器和选择器作为 Uri 参数。

 <mulerequester:request config-ref="Mule_Requester" resource="wmq://REPLY.QUEUE?connector=wmqConnector&amp;selector=JMSCorrelationID%3D'#[sessionVars.myCorrelationId]'" doc:name="Mule Requester" timeout="120000"/>
于 2015-10-21T19:11:10.783 回答