【问题标题】:How does a tibco ems queue send a soap response to the publishertibco ems 队列如何向发布者发送soap响应
【发布时间】:2013-10-09 20:23:53
【问题描述】:

在使用soap/jms Web 服务时,我使用部署在WAS 上的EJB 作为我的客户端。我的服务端点是 tibco ems 队列。为了调用该服务,我构建了一个 SOAP messgae 并将其放入队列中。

但我的困惑是:“队列”如何给我回复?我了解 http 请求响应是如何工作的,但是对于队列(我只有传统 MQ 的经验),我不知道队列如何向发布者返回正确的响应。

假设有一个 MDB 使用队列中的消息,调用服务方法,然后将响应放回队列中?然后队列将响应发送回客户端?

【问题讨论】:

  • 依赖注入与你的问题有什么关系?
  • 对不起,我更正了自己

标签: java jms tibco-ems


【解决方案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 发送请求时,像往常和推荐的那样,会为每个单独的请求-回复交互创建一个临时队列。

【讨论】:

  • 谢谢。那么resposne队列会将响应发送回发布者吗?那么在将消息放入请求队列后,发布者立即返回并打开与响应队列的连接?
  • 好吧,发布者实际上会在发送请求消息之前打开到响应队列的连接。 (在队列情况下不那么重要,在主题情况下更重要,否则您可能会遇到会丢失消息的竞争条件。)但是,当您使用 QueueRequestor.request(...) 时,JMS-API 会向您隐藏它,它只会为您提供响应消息作为返回值。
猜你喜欢
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多