Class MessagingMessageListenerAdapter
java.lang.Object
org.springframework.jms.listener.adapter.AbstractAdaptableMessageListener
org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter
- All Implemented Interfaces:
MessageListener
,SessionAwareMessageListener<Message>
,SubscriptionNameProvider
public class MessagingMessageListenerAdapter
extends AbstractAdaptableMessageListener
implements SubscriptionNameProvider
A
MessageListener
adapter that invokes a configurable
InvocableHandlerMethod
.
Wraps the incoming Message
in Spring's Message
abstraction, copying the JMS standard headers using a configurable
JmsHeaderMapper
.
The original Message
and the Session
are provided as additional arguments so that these can be injected as
method arguments if necessary.
Note that MessagingMessageListenerAdapter
implements
SubscriptionNameProvider
in order to provide a meaningful default
subscription name. See getSubscriptionName()
for details.
- Since:
- 4.1
- Author:
- Stephane Nicoll, Sam Brannen
- See Also:
-
Field Summary
Fields inherited from class org.springframework.jms.listener.adapter.AbstractAdaptableMessageListener
logger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGenerate a subscription name for thisMessageListener
adapter based on the following rules.void
Callback for processing a received JMS message.protected Object
preProcessResponse
(Object result) Pre-process the given result before it is converted to aMessage
.void
setHandlerMethod
(InvocableHandlerMethod handlerMethod) Set theInvocableHandlerMethod
to use to invoke the method processing an incomingMessage
.protected Message<?>
toMessagingMessage
(Message jmsMessage) Methods inherited from class org.springframework.jms.listener.adapter.AbstractAdaptableMessageListener
buildMessage, extractMessage, getDestinationResolver, getMessageConverter, getMessagingMessageConverter, getResponseDestination, getResponseQosSettings, handleListenerException, handleResult, onMessage, postProcessProducer, postProcessResponse, resolveDefaultResponseDestination, sendResponse, setDefaultResponseDestination, setDefaultResponseQueueName, setDefaultResponseTopicName, setDestinationResolver, setHeaderMapper, setMessageConverter, setResponseQosSettings
-
Constructor Details
-
MessagingMessageListenerAdapter
public MessagingMessageListenerAdapter()
-
-
Method Details
-
setHandlerMethod
Set theInvocableHandlerMethod
to use to invoke the method processing an incomingMessage
. -
onMessage
Description copied from interface:SessionAwareMessageListener
Callback for processing a received JMS message.Implementors are supposed to process the given Message, typically sending reply messages through the given Session.
- Specified by:
onMessage
in interfaceSessionAwareMessageListener<Message>
- Specified by:
onMessage
in classAbstractAdaptableMessageListener
- Parameters:
jmsMessage
- the received JMS message (nevernull
)session
- the underlying JMS Session (nevernull
)- Throws:
JMSException
- if thrown by JMS methods
-
toMessagingMessage
-
preProcessResponse
Description copied from class:AbstractAdaptableMessageListener
Pre-process the given result before it is converted to aMessage
.- Overrides:
preProcessResponse
in classAbstractAdaptableMessageListener
- Parameters:
result
- the result of the invocation- Returns:
- the payload response to handle, either the
result
argument or any other object (for instance wrapping the result).
-
getSubscriptionName
Generate a subscription name for thisMessageListener
adapter based on the following rules.- If the
handlerMethod
has been set, the generated subscription name takes the form ofhandlerMethod.getBeanType().getName() + "." + handlerMethod.getMethod().getName()
. - Otherwise, the generated subscription name is the result of invoking
getClass().getName()
, which aligns with the default behavior ofAbstractMessageListenerContainer
.
- Specified by:
getSubscriptionName
in interfaceSubscriptionNameProvider
- Since:
- 5.3.26
- See Also:
- If the
-