Name
JMSReplyTo — Purpose: Routing
In some cases, a message producer may want the consumers to
reply to a message. The JMSReplyTo
header indicates which destination, if any, a JMS consumer should
reply to. The JMSReplyTo
header is
set explicitly by the JMS client; its contents will be a javax.jms.Destination
object (either
Topic
or Queue
).
In some cases, the JMS client will want the message consumers to
reply to a temporary topic or queue set up by the JMS client. Here is
an example of a pub/sub JMS client that creates a temporary topic and
uses its Topic
object identifier as
a JMSReplyTo
header:
TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); ...Topic tempTopic = session.createTemporaryTopic();
... TextMessage message = session.createTextMessage(); message.setText(text);message.setJMSReplyTo(tempTopic);
publisher.publish(message);
When a JMS message consumer receives a message that includes a
JMSReplyTo
destination, it can
reply using that destination. A JMS consumer is not required to send a
reply, but in some JMS applications, clients are programmed to do so.
Here is an example of a JMS consumer that uses the JMSReplyTo
header on a received message to
send a reply. In this case, the subscriber will simple send an
acknowledgment back to the publisher indicating it received the
message:
Topic chatTopic = ... get topic from somewhere ... // Publisher is created without a specified Topic TopicPublisher publisher = session.createPublisher(null); ...
Get Java Message Service, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.