Interface JmsClient


public interface JmsClient
A fluent JmsClient with common send and receive operations against a JMS destination, dealing with Spring's common Message or with payload values. This is effectively an alternative to JmsMessagingTemplate, also delegating to Spring's JmsTemplate for performing actual operations.

Note: Operations in this interface throw MessagingException instead of the JMS-specific JmsException, aligning with the spring-messaging module and its other client operation handles. Message conversion is preferably done through the common MessageConverter but can also be customized at the JmsTemplate.setMessageConverter(org.springframework.jms.support.converter.MessageConverter) level.

This client provides reusable operation handles which can be configured with custom QoS settings. Note that any use of such explicit settings will override administrative provider settings (see JmsTemplate.setExplicitQosEnabled(boolean)).

An example for sending a converted payload to a queue:

 client.destination("myQueue")
     .withTimeToLive(1000)
     .send("myPayload");  // optionally with a headers Map next to the payload
 

An example for receiving a converted payload from a queue:

 Optional<String> payload = client.destination("myQueue")
     .withReceiveTimeout(1000)
     .receive(String.class);
 

An example for sending a message with a payload to a queue:

 Message<?> message =
      MessageBuilder.withPayload("myPayload").build();  // optionally with headers
 client.destination("myQueue")
     .withTimeToLive(1000)
     .send(message);
 

An example for receiving a message with a payload from a queue:

 Optional<Message<?>> message = client.destination("myQueue")
     .withReceiveTimeout(1000)
     .receive();
 
Since:
7.0
Author:
Juergen Hoeller
See Also:
  • Method Details

    • destination

      JmsClient.OperationSpec destination(Destination destination)
      Provide an operation handle for the given JMS destination.
      Parameters:
      destination - the JMS Destination object
      Returns:
      a reusable operation handle bound to the destination
    • destination

      JmsClient.OperationSpec destination(String destinationName)
      Provide an operation handle for the specified JMS destination.
      Parameters:
      destinationName - a name resolving to a JMS Destination
      Returns:
      a reusable operation handle bound to the destination
      See Also:
    • create

      static JmsClient create(ConnectionFactory connectionFactory)
      Create a new JmsClient for the given ConnectionFactory.
      Parameters:
      connectionFactory - the factory to obtain JMS connections from
    • create

      static JmsClient create(ConnectionFactory connectionFactory, MessageConverter messageConverter)
      Create a new JmsClient for the given ConnectionFactory.
      Parameters:
      connectionFactory - the factory to obtain JMS connections from
      messageConverter - the message converter for payload objects
    • create

      static JmsClient create(JmsOperations jmsTemplate)
      Create a new JmsClient for the given JmsOperations.
      Parameters:
      jmsTemplate - the JmsTemplate to use for performing operations (can be a custom JmsOperations implementation as well)
    • create

      static JmsClient create(JmsOperations jmsTemplate, MessageConverter messageConverter)
      Create a new JmsClient for the given JmsOperations.
      Parameters:
      jmsTemplate - the JmsTemplate to use for performing operations (can be a custom JmsOperations implementation as well)
      messageConverter - the message converter for payload objects