跳到主要内容

使用队列请求者

QueueRequestor 类提供了一种简单的同步请求/回复机制,客户端可以使用它向队列目标发布消息并等待对该消息的回复。

要创建队列请求者,请调用 javax.jms.QueueRequestor(QueueSession session, Queue queue) 并传入一个非事务性会话和一个队列目标。队列请求者会自动创建一个临时队列,该队列在会话持续时间内使用。

创建队列请求者后,调用 QueueRequestor.request(Message message) 方法并传入您希望请求回复的消息。接收应用程序对请求的回复将被定向到由队列请求者创建的临时队列。(此临时队列充当 JMSReplyTo 目的地。)接收请求的客户端可以使用 Message.getJMSReplyTo() 方法获取应发送回复的目的地。

第一个回复将返回给请求客户端;任何后续回复都将被丢弃。请注意,请求会一直等待直到收到回复——无法为请求设置超时。如果回复返回缓慢或从未到达,这可能会有问题。

当调用 QueueRequestor.close() 时,队列请求者及其所属的会话都将被关闭。

相关示例

有关如何使用 QueueRequestor 类向临时队列发送消息并请求对这些消息的直接回复的示例,请参阅 SolJMSRRGuaranteedRequesterSolJMSRRGuaranteedReplier 示例。