javax.jms

## Class TopicRequestor

- java.lang.Object
- - javax.jms.TopicRequestor

-     public class TopicRequestor
      extends java.lang.Object

  The `TopicRequestor` helper class simplifies making service requests.

  The `TopicRequestor` constructor is given a non-transacted `TopicSession` and a destination `Topic`. It creates a `TemporaryTopic` for the responses and provides a `request` method that sends the request message and waits for its reply.

  This is a very basic request/reply abstraction which assumes the session is non-transacted with a delivery mode of either AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE. It is expected that most applications will create less basic implementations.

  Since:
    JMS 1.0
  See Also:
    `QueueRequestor`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TopicRequestor(TopicSession session, Topic topic)` Constructor for the `TopicRequestor` class.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the `TopicRequestor` and its session.
    `Message` | `request(Message message)` Sends a request and waits for a reply.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TopicRequestor

          public TopicRequestor(TopicSession session,
                                Topic topic)
                         throws JMSException

      Constructor for the `TopicRequestor` class.

      This implementation assumes the session parameter to be non-transacted, with a delivery mode of either `AUTO_ACKNOWLEDGE` or `DUPS_OK_ACKNOWLEDGE`.

      Parameters:
        `session` - the `TopicSession` the topic belongs to
        `topic` - the topic to perform the request/reply call on
      Throws:
        `JMSException` - if the JMS provider fails to create the `TopicRequestor` due to some internal error.
        `InvalidDestinationException` - if an invalid topic is specified.

  - ### Method Detail

    - #### request

          public Message request(Message message)
                          throws JMSException

      Sends a request and waits for a reply. The temporary topic is used for the `JMSReplyTo` destination; the first reply is returned, and any following replies are discarded.
      Parameters:
        `message` - the message to send
      Returns:
        the reply message
      Throws:
        `JMSException` - if the JMS provider fails to complete the request due to some internal error.

    - #### close

          public void close()
                     throws JMSException

      Closes the `TopicRequestor` and its session.

      Since a provider may allocate some resources on behalf of a `TopicRequestor` outside the Java virtual machine, clients should close them when they are not needed. Relying on garbage collection to eventually reclaim these resources may not be timely enough.

      Note that this method closes the `TopicSession` object passed to the `TopicRequestor` constructor.

      Throws:
        `JMSException` - if the JMS provider fails to close the `TopicRequestor` due to some internal error.