Package org.springframework.jms.core
Class JmsMessagingTemplate
java.lang.Object
org.springframework.messaging.core.AbstractMessageSendingTemplate<D>
org.springframework.messaging.core.AbstractMessageReceivingTemplate<D>
org.springframework.messaging.core.AbstractMessagingTemplate<Destination>
org.springframework.jms.core.JmsMessagingTemplate
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
,JmsMessageOperations
,org.springframework.messaging.core.MessageReceivingOperations<Destination>
,org.springframework.messaging.core.MessageRequestReplyOperations<Destination>
,org.springframework.messaging.core.MessageSendingOperations<Destination>
public class JmsMessagingTemplate
extends org.springframework.messaging.core.AbstractMessagingTemplate<Destination>
implements JmsMessageOperations, org.springframework.beans.factory.InitializingBean
An implementation of
JmsMessageOperations
.- Since:
- 4.1
- Author:
- Stephane Nicoll, Juergen Hoeller
-
Field Summary
Fields inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplate
CONVERSION_HINT_HEADER, logger
-
Constructor Summary
ConstructorDescriptionConstructor for use with bean properties.JmsMessagingTemplate
(ConnectionFactory connectionFactory) Create aJmsMessagingTemplate
instance with the JMSConnectionFactory
to use, implicitly building aJmsTemplate
based on it.JmsMessagingTemplate
(JmsTemplate jmsTemplate) Create aJmsMessagingTemplate
instance with theJmsTemplate
to use. -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
convertAndSend
(Object payload) void
convertAndSend
(Object payload, org.springframework.messaging.core.MessagePostProcessor postProcessor) void
convertAndSend
(String destinationName, Object payload) Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message and send it to the given destination.void
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers and send it to the given destination.void
convertAndSend
(String destinationName, Object payload, Map<String, Object> headers, org.springframework.messaging.core.MessagePostProcessor postProcessor) Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers, apply the given post processor, and send the resulting message to the given destination.void
convertAndSend
(String destinationName, Object payload, org.springframework.messaging.core.MessagePostProcessor postProcessor) Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message, apply the given post processor, and send the resulting message to the given destination.protected org.springframework.messaging.MessagingException
protected org.springframework.messaging.Message<?>
convertJmsMessage
(Message message) <T> T
convertSendAndReceive
(Object request, Class<T> targetClass) <T> T
convertSendAndReceive
(Object request, Class<T> targetClass, org.springframework.messaging.core.MessagePostProcessor postProcessor) <T> T
convertSendAndReceive
(String destinationName, Object request, Class<T> targetClass) Convert the given request Object to serialized form, possibly using aMessageConverter
, send it as aMessage
to the given destination, receive the reply and convert its body of the specified target class.<T> T
convertSendAndReceive
(String destinationName, Object request, Class<T> targetClass, org.springframework.messaging.core.MessagePostProcessor requestPostProcessor) Convert the given request Object to serialized form, possibly using aMessageConverter
, apply the given post processor and send the resultingMessage
to the given destination, receive the reply and convert its body of the given target class.<T> T
convertSendAndReceive
(String destinationName, Object request, Map<String, Object> headers, Class<T> targetClass) Convert the given request Object to serialized form, possibly using aMessageConverter
, send it as aMessage
with the given headers, to the specified destination, receive the reply and convert its body of the specified target class.<T> T
convertSendAndReceive
(String destinationName, Object request, Map<String, Object> headers, Class<T> targetClass, org.springframework.messaging.core.MessagePostProcessor postProcessor) Convert the given request Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers, apply the given post processor and send the resultingMessage
to the specified destination, receive the reply and convert its body of the given target class.protected org.springframework.messaging.Message<?>
doReceive
(Destination destination) protected org.springframework.messaging.Message<?>
protected void
doSend
(Destination destination, org.springframework.messaging.Message<?> message) protected void
protected org.springframework.messaging.Message<?>
doSendAndReceive
(Destination destination, org.springframework.messaging.Message<?> requestMessage) protected org.springframework.messaging.Message<?>
doSendAndReceive
(String destinationName, org.springframework.messaging.Message<?> requestMessage) Return the ConnectionFactory that the underlyingJmsTemplate
uses.Return the configured default destination name.Return the configuredJmsTemplate
.protected String
org.springframework.messaging.Message<?>
receive()
org.springframework.messaging.Message<?>
Receive a message from the given destination.<T> T
receiveAndConvert
(Class<T> targetClass) <T> T
receiveAndConvert
(String destinationName, Class<T> targetClass) Receive a message from the given destination and convert its payload to the specified target class.void
Send a message to the given destination.void
send
(org.springframework.messaging.Message<?> message) org.springframework.messaging.Message<?>
sendAndReceive
(String destinationName, org.springframework.messaging.Message<?> requestMessage) Send a request message and receive the reply from the given destination.org.springframework.messaging.Message<?>
sendAndReceive
(org.springframework.messaging.Message<?> requestMessage) void
setConnectionFactory
(ConnectionFactory connectionFactory) Set the ConnectionFactory to use for the underlyingJmsTemplate
.void
setDefaultDestinationName
(String defaultDestinationName) Configure the default destination name to use in send methods that don't have a destination argument.void
setJmsMessageConverter
(MessageConverter jmsMessageConverter) void
setJmsTemplate
(JmsTemplate jmsTemplate) Set theJmsTemplate
to use.Methods inherited from class org.springframework.messaging.core.AbstractMessagingTemplate
convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, sendAndReceive
Methods inherited from class org.springframework.messaging.core.AbstractMessageReceivingTemplate
doConvert, receive, receiveAndConvert
Methods inherited from class org.springframework.messaging.core.AbstractMessageSendingTemplate
convertAndSend, convertAndSend, convertAndSend, convertAndSend, doConvert, getDefaultDestination, getMessageConverter, getRequiredDefaultDestination, processHeadersToSend, send, setDefaultDestination, setMessageConverter
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.messaging.core.MessageReceivingOperations
receive, receiveAndConvert
Methods inherited from interface org.springframework.messaging.core.MessageRequestReplyOperations
convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, convertSendAndReceive, sendAndReceive
Methods inherited from interface org.springframework.messaging.core.MessageSendingOperations
convertAndSend, convertAndSend, convertAndSend, convertAndSend, send
-
Constructor Details
-
JmsMessagingTemplate
public JmsMessagingTemplate()Constructor for use with bean properties. RequiressetConnectionFactory(jakarta.jms.ConnectionFactory)
orsetJmsTemplate(org.springframework.jms.core.JmsTemplate)
to be called. -
JmsMessagingTemplate
Create aJmsMessagingTemplate
instance with the JMSConnectionFactory
to use, implicitly building aJmsTemplate
based on it.- Since:
- 4.1.2
-
JmsMessagingTemplate
Create aJmsMessagingTemplate
instance with theJmsTemplate
to use.
-
-
Method Details
-
setConnectionFactory
Set the ConnectionFactory to use for the underlyingJmsTemplate
.- Since:
- 4.1.2
-
getConnectionFactory
Return the ConnectionFactory that the underlyingJmsTemplate
uses.- Since:
- 4.1.2
-
setJmsTemplate
Set theJmsTemplate
to use. -
getJmsTemplate
Return the configuredJmsTemplate
. -
setJmsMessageConverter
Set theMessageConverter
to use to convert aMessage
from the messaging to and from aMessage
. By default, aMessagingMessageConverter
is defined using aSimpleMessageConverter
to convert the payload of the message.Consider configuring a
MessagingMessageConverter
with a differentpayload converter
for more advanced scenarios.- See Also:
-
getJmsMessageConverter
-
setDefaultDestinationName
Configure the default destination name to use in send methods that don't have a destination argument. If a default destination is not configured, send methods without a destination argument will raise an exception if invoked.- See Also:
-
AbstractMessageSendingTemplate.setDefaultDestination(Object)
-
getDefaultDestinationName
Return the configured default destination name. -
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
-
send
public void send(org.springframework.messaging.Message<?> message) - Specified by:
send
in interfaceorg.springframework.messaging.core.MessageSendingOperations<Destination>
- Overrides:
send
in classorg.springframework.messaging.core.AbstractMessageSendingTemplate<Destination>
-
convertAndSend
- Specified by:
convertAndSend
in interfaceorg.springframework.messaging.core.MessageSendingOperations<Destination>
- Overrides:
convertAndSend
in classorg.springframework.messaging.core.AbstractMessageSendingTemplate<Destination>
- Throws:
org.springframework.messaging.MessagingException
-
convertAndSend
public void convertAndSend(Object payload, @Nullable org.springframework.messaging.core.MessagePostProcessor postProcessor) throws org.springframework.messaging.MessagingException - Specified by:
convertAndSend
in interfaceorg.springframework.messaging.core.MessageSendingOperations<Destination>
- Overrides:
convertAndSend
in classorg.springframework.messaging.core.AbstractMessageSendingTemplate<Destination>
- Throws:
org.springframework.messaging.MessagingException
-
send
public void send(String destinationName, org.springframework.messaging.Message<?> message) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Send a message to the given destination.- Specified by:
send
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationmessage
- the message to send- Throws:
org.springframework.messaging.MessagingException
-
convertAndSend
public void convertAndSend(String destinationName, Object payload) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message and send it to the given destination.- Specified by:
convertAndSend
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationpayload
- the Object to use as payload- Throws:
org.springframework.messaging.MessagingException
-
convertAndSend
public void convertAndSend(String destinationName, Object payload, @Nullable Map<String, Object> headers) throws org.springframework.messaging.MessagingExceptionDescription copied from interface:JmsMessageOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers and send it to the given destination.- Specified by:
convertAndSend
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationpayload
- the Object to use as payloadheaders
- the headers for the message to send- Throws:
org.springframework.messaging.MessagingException
-
convertAndSend
public void convertAndSend(String destinationName, Object payload, @Nullable org.springframework.messaging.core.MessagePostProcessor postProcessor) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message, apply the given post processor, and send the resulting message to the given destination.- Specified by:
convertAndSend
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationpayload
- the Object to use as payloadpostProcessor
- the post processor to apply to the message- Throws:
org.springframework.messaging.MessagingException
-
convertAndSend
public void convertAndSend(String destinationName, Object payload, @Nullable Map<String, Object> headers, @Nullable org.springframework.messaging.core.MessagePostProcessor postProcessor) throws org.springframework.messaging.MessagingExceptionDescription copied from interface:JmsMessageOperations
Convert the given Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers, apply the given post processor, and send the resulting message to the given destination.- Specified by:
convertAndSend
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationpayload
- the Object to use as payloadheaders
- the headers for the message to sendpostProcessor
- the post processor to apply to the message- Throws:
org.springframework.messaging.MessagingException
-
receive
@Nullable public org.springframework.messaging.Message<?> receive()- Specified by:
receive
in interfaceorg.springframework.messaging.core.MessageReceivingOperations<Destination>
- Overrides:
receive
in classorg.springframework.messaging.core.AbstractMessageReceivingTemplate<Destination>
-
receiveAndConvert
- Specified by:
receiveAndConvert
in interfaceorg.springframework.messaging.core.MessageReceivingOperations<Destination>
- Overrides:
receiveAndConvert
in classorg.springframework.messaging.core.AbstractMessageReceivingTemplate<Destination>
-
receive
@Nullable public org.springframework.messaging.Message<?> receive(String destinationName) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Receive a message from the given destination.- Specified by:
receive
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destination- Returns:
- the received message, possibly
null
if the message could not be received, for example due to a timeout - Throws:
org.springframework.messaging.MessagingException
-
receiveAndConvert
@Nullable public <T> T receiveAndConvert(String destinationName, Class<T> targetClass) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Receive a message from the given destination and convert its payload to the specified target class.- Specified by:
receiveAndConvert
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationtargetClass
- the target class to convert the payload to- Returns:
- the converted payload of the reply message, possibly
null
if the message could not be received, for example due to a timeout - Throws:
org.springframework.messaging.MessagingException
-
sendAndReceive
@Nullable public org.springframework.messaging.Message<?> sendAndReceive(org.springframework.messaging.Message<?> requestMessage) - Specified by:
sendAndReceive
in interfaceorg.springframework.messaging.core.MessageRequestReplyOperations<Destination>
- Overrides:
sendAndReceive
in classorg.springframework.messaging.core.AbstractMessagingTemplate<Destination>
-
sendAndReceive
@Nullable public org.springframework.messaging.Message<?> sendAndReceive(String destinationName, org.springframework.messaging.Message<?> requestMessage) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Send a request message and receive the reply from the given destination.- Specified by:
sendAndReceive
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationrequestMessage
- the message to send- Returns:
- the reply, possibly
null
if the message could not be received, for example due to a timeout - Throws:
org.springframework.messaging.MessagingException
-
convertSendAndReceive
@Nullable public <T> T convertSendAndReceive(String destinationName, Object request, Class<T> targetClass) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Convert the given request Object to serialized form, possibly using aMessageConverter
, send it as aMessage
to the given destination, receive the reply and convert its body of the specified target class.- Specified by:
convertSendAndReceive
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationrequest
- payload for the request message to sendtargetClass
- the target type to convert the payload of the reply to- Returns:
- the payload of the reply message, possibly
null
if the message could not be received, for example due to a timeout - Throws:
org.springframework.messaging.MessagingException
-
convertSendAndReceive
- Specified by:
convertSendAndReceive
in interfaceorg.springframework.messaging.core.MessageRequestReplyOperations<Destination>
- Overrides:
convertSendAndReceive
in classorg.springframework.messaging.core.AbstractMessagingTemplate<Destination>
-
convertSendAndReceive
@Nullable public <T> T convertSendAndReceive(String destinationName, Object request, @Nullable Map<String, Object> headers, Class<T> targetClass) throws org.springframework.messaging.MessagingExceptionDescription copied from interface:JmsMessageOperations
Convert the given request Object to serialized form, possibly using aMessageConverter
, send it as aMessage
with the given headers, to the specified destination, receive the reply and convert its body of the specified target class.- Specified by:
convertSendAndReceive
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationrequest
- payload for the request message to sendheaders
- the headers for the request message to sendtargetClass
- the target type to convert the payload of the reply to- Returns:
- the payload of the reply message, possibly
null
if the message could not be received, for example due to a timeout - Throws:
org.springframework.messaging.MessagingException
-
convertSendAndReceive
@Nullable public <T> T convertSendAndReceive(Object request, Class<T> targetClass, @Nullable org.springframework.messaging.core.MessagePostProcessor postProcessor) - Specified by:
convertSendAndReceive
in interfaceorg.springframework.messaging.core.MessageRequestReplyOperations<Destination>
- Overrides:
convertSendAndReceive
in classorg.springframework.messaging.core.AbstractMessagingTemplate<Destination>
-
convertSendAndReceive
@Nullable public <T> T convertSendAndReceive(String destinationName, Object request, Class<T> targetClass, @Nullable org.springframework.messaging.core.MessagePostProcessor requestPostProcessor) throws org.springframework.messaging.MessagingException Description copied from interface:JmsMessageOperations
Convert the given request Object to serialized form, possibly using aMessageConverter
, apply the given post processor and send the resultingMessage
to the given destination, receive the reply and convert its body of the given target class.- Specified by:
convertSendAndReceive
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationrequest
- payload for the request message to sendtargetClass
- the target type to convert the payload of the reply torequestPostProcessor
- post process to apply to the request message- Returns:
- the payload of the reply message, possibly
null
if the message could not be received, for example due to a timeout - Throws:
org.springframework.messaging.MessagingException
-
convertSendAndReceive
@Nullable public <T> T convertSendAndReceive(String destinationName, Object request, @Nullable Map<String, Object> headers, Class<T> targetClass, @Nullable org.springframework.messaging.core.MessagePostProcessor postProcessor) Description copied from interface:JmsMessageOperations
Convert the given request Object to serialized form, possibly using aMessageConverter
, wrap it as a message with the given headers, apply the given post processor and send the resultingMessage
to the specified destination, receive the reply and convert its body of the given target class.- Specified by:
convertSendAndReceive
in interfaceJmsMessageOperations
- Parameters:
destinationName
- the name of the target destinationrequest
- payload for the request message to sendtargetClass
- the target type to convert the payload of the reply topostProcessor
- post process to apply to the request message- Returns:
- the payload of the reply message, possibly
null
if the message could not be received, for example due to a timeout
-
doSend
- Specified by:
doSend
in classorg.springframework.messaging.core.AbstractMessageSendingTemplate<Destination>
-
doSend
-
doReceive
- Specified by:
doReceive
in classorg.springframework.messaging.core.AbstractMessageReceivingTemplate<Destination>
-
doReceive
-
doSendAndReceive
@Nullable protected org.springframework.messaging.Message<?> doSendAndReceive(Destination destination, org.springframework.messaging.Message<?> requestMessage) - Specified by:
doSendAndReceive
in classorg.springframework.messaging.core.AbstractMessagingTemplate<Destination>
-
doSendAndReceive
@Nullable protected org.springframework.messaging.Message<?> doSendAndReceive(String destinationName, org.springframework.messaging.Message<?> requestMessage) -
getRequiredDefaultDestinationName
-
convertJmsMessage
@Nullable protected org.springframework.messaging.Message<?> convertJmsMessage(@Nullable Message message) -
convertJmsException
-