org.springframework.jms.listener

## Interface SessionAwareMessageListener<M extends Message>

- All Known Implementing Classes:
    JmsInvokerServiceExporter, MessageListenerAdapter, MessageListenerAdapter102

      public interface SessionAwareMessageListener<M extends Message>

  Variant of the standard JMS `MessageListener` interface, offering not only the received Message but also the underlying JMS Session object. The latter can be used to send reply messages, without the need to access an external Connection/Session, i.e. without the need to access the underlying ConnectionFactory.

  Supported by Spring's `DefaultMessageListenerContainer` and `SimpleMessageListenerContainer`, as direct alternative to the standard JMS MessageListener interface. Typically not supported by JCA-based listener containers: For maximum compatibility, implement a standard JMS MessageListener instead.

  Since:
    2.0
  Author:
    Juergen Hoeller
  See Also:
    `AbstractMessageListenerContainer.setMessageListener(java.lang.Object)`, `DefaultMessageListenerContainer`, `SimpleMessageListenerContainer`, `JmsMessageEndpointManager`, `MessageListener`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onMessage(M message, Session session)` Callback for processing a received JMS message.

- - ### Method Detail

    - #### onMessage

          void onMessage(M message,
                       Session session)
                         throws JMSException

      Callback for processing a received JMS message.

      Implementors are supposed to process the given Message, typically sending reply messages through the given Session.

      Parameters:
        `message` - the received JMS message (never `null`)
        `session` - the underlying JMS Session (never `null`)
      Throws:
        `JMSException` - if thrown by JMS methods