Name
JMSReplyTo — Purpose: Routing
Synopsis
In some cases, a
message producer may want the consumers to reply to
a
message. The JMSReplyTo
header indicates which address, 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 reply
is a simple empty Message object:
Topic chatTopic = ... get topic from somewhere ... // Publisher is created without a specified Topic TopicPublisher publisher = session.createPublisher(null); ... public void onMessage(Message message){ try { TextMessage ...