通过JMS的Mule Web服务使用者

时间:2015-12-01 03:43:29

标签: mule

我需要使用使用JMS作为传输而不是HTTP的WS。 Web服务使用者文档说它支持JMS,但不幸的是,使用非HTTP传输的组件提供了任何示例。 需要有关此主题的帮助。这些是我已经完成的步骤:

连接器向导已在任意点成功加载了wsdl。我已经指定了要调用的方法。参数由DataSense识别,因此我可以使用DataMapper等查看输入参数。

网址如下所示:jms:queue:toOrderManagement?replyToName=fromOrderManagement?targetService=OrderManagement

我已经定义了这样的全局JMS连接器:

   <jms:connector name="JMSConnector" specification="1.1"  username="user"
        password="******" validateConnections="true" doc:name="JMS">
        <reconnect-forever />
    </jms:connector>

并将其与WS连接器关联,如下所示:

   <ws:consumer-config name="Web_Service_Consumer" wsdlLocation="myOrder.wsdl" 
service="OrderManager" port="JMSOrderManager" 
serviceAddress="jms:queue:toOrderManagement?replyToName=fromOrderManagement?targetService=OrderManagement" 
doc:name="Web Service Consumer" connector-ref="JMSConnector"/>

那么,如何指定实际的JMS队列名称以及为JMS / WS配置的serviceAddress属性的格式是什么?

1 个答案:

答案 0 :(得分:0)

好的,我花了一些时间才得到答案。 所以,首先,servcieAddress的格式应该是这样的:

  

JMS:// $ {toQueue} exchangePattern =请求 - 响应

其中toQueue是&#34;请求&#34;队列名称,即请求将被发送到的名称。

现在,如果您没有指定任何其他参数,那么临时&#34;响应&#34;队列将自动创建,WS Consumer将等待从中接收响应。

如果您想使用预先配置的队列来获取响应,那么在调用WS Consumer之前,您需要将消息属性JMSReplyTo设置为要使用的响应队列名称。如果设置了该属性,则WS Consumer将等待来自该队列的响应,而不是来自临时队列的响应。

相关问题