package com.brainysoftware.ejb; import javax.ejb.MessageDrivenBean; import javax.ejb.MessageDrivenContext; import javax.ejb.EJBException; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSender; import javax.jms.QueueSession; import javax.jms.TextMessage; import javax.naming.InitialContext; import javax.naming.NamingException; public class MyMDB implements MessageDrivenBean, MessageListener { MessageDrivenContext context = null; QueueConnection connection; QueueSession session; public MyMDB() { System.out.println("Constructing MyMDB"); } public void setMessageDrivenContext(MessageDrivenContext context) { this.context = context; System.out.println("setMessageDrivenContext"); } public void ejbCreate() throws EJBException { System.out.println("ejbCreate"); try { InitialContext initContext = new InitialContext(); QueueConnectionFactory qcf = (QueueConnectionFactory) initContext.lookup("java:comp/env/jms/QCF"); connection = qcf.createQueueConnection(); session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); connection.start(); } catch(Exception e) { throw new EJBException("Failed to initialize MyMDB", e); } } public void ejbRemove() { System.out.println("ejbRemove"); context = null; try { if( session != null ) session.close(); if( connection != null ) connection.close(); } catch(JMSException e) { e.printStackTrace(); } } public void onMessage(Message msg) { System.out.println("onMessage"); try { TextMessage message = (TextMessage) msg; Queue queue = (Queue) msg.getJMSReplyTo(); QueueSender sender = session.createSender(queue); TextMessage message2 = session.createTextMessage(message.getText()); sender.send(message2); sender.close(); } catch(Exception e) { e.printStackTrace(); } } }