/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package nl.marcenschede.tests; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Resource; import javax.ejb.LocalBean; import javax.ejb.Stateless; import javax.jms.*; /** * * @author marc */ @Stateless @LocalBean public class OrderManager { @Resource(mappedName = "jms/LotusRequest") private Queue lotusRequest; @Resource(mappedName = "jms/LotusRequestFactory") private ConnectionFactory lotusRequestFactory; public String registerCustomer(String name, String city, String phone, int code) { Customer customer = new Customer(name, city, phone, code); Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "OrderManager: Customer = {0}", customer.toString()); if (code == 1) { return "Not OK"; } try { sendJMSMessageToLotusRequest(customer); } catch (JMSException ex) { Logger.getLogger(OrderManager.class.getName()).log(Level.SEVERE, null, ex); } return "OK"; } private Message createJMSMessageForjmsLotusRequest(Session session, String messageData) throws JMSException { TextMessage tm = session.createTextMessage(); tm.setText(messageData); return tm; } private void sendJMSMessageToLotusRequest(Customer messageData) throws JMSException { Connection connection = null; Session session = null; try { connection = lotusRequestFactory.createConnection(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer messageProducer = session.createProducer(lotusRequest); Message m = createJMSMessageForjmsLotusRequest(session, messageData.toString()); m.setIntProperty("id", messageData.getId()); m.setIntProperty("code", messageData.getCode()); messageProducer.send(m); } finally { if (session != null) { try { session.close(); } catch (JMSException e) { Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "Cannot close session", e); } } if (connection != null) { connection.close(); } } } }