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(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, Brian Clozel
See Also: