package org.javaee7.jms.xa; import javax.ejb.ActivationConfigProperty; import javax.ejb.EJB; import javax.ejb.MessageDriven; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import java.util.logging.Level; import java.util.logging.Logger; @MessageDriven(activationConfig = {@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = Mailman.CLASSIC_QUEUE), @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),}) public class JMSMailman implements MessageListener { private static final Logger logger = Logger.getLogger(JMSMailman.class.getName()); @EJB private DeliveryStats deliveryStats; @Override public void onMessage(Message message) { try { TextMessage tm = (TextMessage) message; logger.info("Message received (async): " + tm.getText()); deliveryStats.messageDelivered(); } catch (JMSException ex) { logger.log(Level.SEVERE, null, ex); } } }