code: @Override
      public void onMessage(Message message, Session session) throws JMSException {
  
          StandardLogger logger = LoggerUtil.getStandardLogger();
          try {
              String txt = ((TextMessage) message).getText();
              if (logger.isDebugEnabled()) {
                  logger.debug("JMS Spring ExternalEvent Listener receives request: " + txt);
              }
              String resp;
              ListenerHelper helper = new ListenerHelper();
              Map<String, String> metaInfo = new HashMap<String, String>();
              metaInfo.put(Listener.METAINFO_PROTOCOL, Listener.METAINFO_PROTOCOL_JMS);
              metaInfo.put(Listener.METAINFO_REQUEST_PATH, ((Queue)message.getJMSDestination()).getQueueName());
              metaInfo.put(Listener.METAINFO_SERVICE_CLASS, this.getClass().getName());
              metaInfo.put(Listener.METAINFO_REQUEST_ID, message.getJMSMessageID());
              metaInfo.put(Listener.METAINFO_CORRELATION_ID, message.getJMSCorrelationID());
              if (message.getJMSReplyTo() != null)
                  metaInfo.put("ReplyTo", message.getJMSReplyTo().toString());
  
              resp = helper.processEvent(txt, metaInfo);
              String correlId = message.getJMSCorrelationID();
  
              Queue respQueue = (Queue) message.getJMSReplyTo();
              if (resp != null && respQueue != null) {
                  mdwMessageProducer.sendMessage(resp, respQueue, correlId);
                  if (logger.isDebugEnabled()) {
                      logger.debug("JMS Listener sends response (corr id='" + correlId + "'): "
                              + resp);
                  }
  
              }
  
          }
          catch (Throwable ex) {
              logger.severeException(ex.getMessage(), ex);
          }
  
      }
docs: /*
  <p>
  Calls the ListenerHelper to process the event
  and sends back a message to the reply queue
  </p>
  
  @see
  org.springframework.jms.listener.SessionAwareMessageListener#onMessage
  (javax.jms.Message, javax.jms.Session)