2013-10-09 120 views
0

在使用soap/jms web服务时,我使用部署在WAS上的EJB作为我的客户端。我的服务端点是一个tibco ems队列。为了调用服务,我构造了一个SOAP messgae并将其放在队列中。tibco ems队列如何向发布者发送肥皂响应

但我的困惑是:'队列'怎么能送我回应?我理解http请求响应是如何工作的,但是使用队列(我只有传统MQ的经验),我不知道队列如何能够向发布者返回适当的resposne。

让我们说有一个MDB消耗队列中的消息,调用服务方法,然后将响应放回队列?然后队列将响应发送回客户端?

+0

依赖注入与你的问题有什么关系? –

+0

对不起,我纠正自己 – Victor

回答

1

响应将被发回到请求消息属性中指定的不同队列或主题。

可以使用方法msg.setJMSReplyTo(destination)http://docs.oracle.com/cd/E17802_01/products/products/jms/javadoc-102a/javax/jms/Message.html#setJMSReplyTo%28javax.jms.Destination%29)在请求消息中设置响应队列/主题。

当像往常一样使用QueueRequestor发送请求并且推荐时,为每个单独的请求 - 应答交互创建一个临时队列。

+0

谢谢。那么resposne队列会将响应发回给发布者?所以在将消息放入请求队列后,发布者立即返回并打开与resposne队列的连接? – Victor

+0

好吧,发布者会在发出请求消息之前实际打开与响应队列的连接。 (在队列情况下并不重要,在主题情况下更重要,否则可能会有失去消息的竞争条件)。但是,当您使用QueueRequestor.request(...)时,JMS-API隐藏了您的信息。 ',它只是给你响应消息作为返回值。 – Miichi