public class MessagingMessageListenerAdapter extends AbstractAdaptableMessageListener
javax.jms.MessageListener
adapter that invokes a configurable
InvocableHandlerMethod
.
Wraps the incoming javax.jms.Message
to Spring's Message
abstraction, copying the JMS standard headers using a configurable
JmsHeaderMapper
.
The original javax.jms.Message
and the javax.jms.Session
are provided as additional arguments so that these can be injected as
method arguments if necessary.
Message
,
JmsHeaderMapper
,
InvocableHandlerMethod
Modifier and Type | Field and Description |
---|---|
private InvocableHandlerMethod |
handlerMethod |
logger
Constructor and Description |
---|
MessagingMessageListenerAdapter() |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
createMessagingErrorMessage(java.lang.String description) |
private java.lang.Object |
invokeHandler(javax.jms.Message jmsMessage,
Session session,
Message<?> message)
Invoke the handler, wrapping any exception to a
ListenerExecutionFailedException
with a dedicated error message. |
void |
onMessage(javax.jms.Message jmsMessage,
Session session)
Callback for processing a received JMS message.
|
protected java.lang.Object |
preProcessResponse(java.lang.Object result)
Pre-process the given result before it is converted to a
Message . |
void |
setHandlerMethod(InvocableHandlerMethod handlerMethod)
Set the
InvocableHandlerMethod to use to invoke the method
processing an incoming javax.jms.Message . |
protected Message<?> |
toMessagingMessage(javax.jms.Message jmsMessage) |
buildMessage, extractMessage, getDestinationResolver, getMessageConverter, getMessagingMessageConverter, getResponseDestination, handleListenerException, handleResult, onMessage, postProcessProducer, postProcessResponse, resolveDefaultResponseDestination, sendResponse, setDefaultResponseDestination, setDefaultResponseQueueName, setDefaultResponseTopicName, setDestinationResolver, setHeaderMapper, setMessageConverter
private InvocableHandlerMethod handlerMethod
public void setHandlerMethod(InvocableHandlerMethod handlerMethod)
InvocableHandlerMethod
to use to invoke the method
processing an incoming javax.jms.Message
.public void onMessage(javax.jms.Message jmsMessage, Session session) throws JMSException
SessionAwareMessageListener
Implementors are supposed to process the given Message, typically sending reply messages through the given Session.
jmsMessage
- the received JMS message (never null
)session
- the underlying JMS Session (never null
)JMSException
- if thrown by JMS methodsprotected java.lang.Object preProcessResponse(java.lang.Object result)
AbstractAdaptableMessageListener
Message
.preProcessResponse
in class AbstractAdaptableMessageListener
result
- the result of the invocationresult
argument
or any other object (for instance wrapping the result).protected Message<?> toMessagingMessage(javax.jms.Message jmsMessage)
private java.lang.Object invokeHandler(javax.jms.Message jmsMessage, Session session, Message<?> message)
ListenerExecutionFailedException
with a dedicated error message.private java.lang.String createMessagingErrorMessage(java.lang.String description)