Class JmsResponse<T>

java.lang.Object
org.springframework.jms.listener.adapter.JmsResponse<T>
Type Parameters:
T - the type of the response

public class JmsResponse<T> extends Object
Return type of any JMS listener method used to indicate the actual response destination alongside the response itself. Typically used when said destination needs to be computed at runtime.

The example below sends a response with the content of the result argument to the queueOut Queue:

package com.acme.foo;

public class MyService {
    @JmsListener
    public JmsResponse process(String msg) {
        // process incoming message
        return JmsResponse.forQueue(result, "queueOut");
    }
}
If the destination does not need to be computed at runtime, @SendTo is the recommended declarative approach.
Since:
4.2
Author:
Stephane Nicoll
See Also:
  • Constructor Details

    • JmsResponse

      protected JmsResponse(T response, Object destination)
      Create a new JmsResponse instance.
      Parameters:
      response - the content of the response
      destination - the destination
  • Method Details

    • getResponse

      public T getResponse()
      Return the content of the response.
    • resolveDestination

      public @Nullable jakarta.jms.Destination resolveDestination(DestinationResolver destinationResolver, jakarta.jms.Session session) throws jakarta.jms.JMSException
      Resolve the Destination to use for this instance. The DestinationResolver and Session can be used to resolve a destination at runtime.
      Parameters:
      destinationResolver - the destination resolver to use if necessary
      session - the session to use, if necessary
      Returns:
      the Destination to use
      Throws:
      jakarta.jms.JMSException - if the DestinationResolver failed to resolve the destination
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • forQueue

      public static <T> JmsResponse<T> forQueue(T result, String queueName)
      Create a JmsResponse targeting the queue with the specified name.
    • forTopic

      public static <T> JmsResponse<T> forTopic(T result, String topicName)
      Create a JmsResponse targeting the topic with the specified name.
    • forDestination

      public static <T> JmsResponse<T> forDestination(T result, jakarta.jms.Destination destination)
      Create a JmsResponse targeting the specified Destination.