我需要使用使用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属性的格式是什么?
答案 0 :(得分:0)
好的,我花了一些时间才得到答案。 所以,首先,servcieAddress的格式应该是这样的:
JMS:// $ {toQueue} exchangePattern =请求 - 响应
其中toQueue是&#34;请求&#34;队列名称,即请求将被发送到的名称。
现在,如果您没有指定任何其他参数,那么临时&#34;响应&#34;队列将自动创建,WS Consumer将等待从中接收响应。
如果您想使用预先配置的队列来获取响应,那么在调用WS Consumer之前,您需要将消息属性JMSReplyTo设置为要使用的响应队列名称。如果设置了该属性,则WS Consumer将等待来自该队列的响应,而不是来自临时队列的响应。