1 37 38 package com.sun.j2ee.blueprints.lodgingsupplier.pomessagebean; 39 40 import java.io.Serializable ; 41 import java.rmi.RemoteException ; 42 import javax.ejb.*; 43 import javax.naming.*; 44 import javax.jms.*; 45 import javax.xml.rpc.*; 46 47 import com.sun.j2ee.blueprints.lodgingsupplier.JNDINames; 48 import com.sun.j2ee.blueprints.lodgingsupplier.powebservice.*; 49 import com.sun.j2ee.blueprints.lodgingsupplier.purchaseorder.ejb.*; 50 import com.sun.j2ee.blueprints.servicelocator.*; 51 import com.sun.j2ee.blueprints.servicelocator.ejb.*; 52 53 public class LodgingMessageBean implements MessageDrivenBean, MessageListener { 54 55 private transient MessageDrivenContext mdc = null; 56 57 60 public LodgingMessageBean() {} 61 62 65 public void setMessageDrivenContext (MessageDrivenContext mdc) { 66 this.mdc = mdc; 67 } 68 69 72 public void onMessage(Message message) { 73 LodgingOrder lo = null; 74 75 try { 76 String messageID = message.getJMSMessageID(); 77 if (message instanceof ObjectMessage) { 78 ObjectMessage msg = (ObjectMessage)message; 79 lo = (LodgingOrder)msg.getObject(); 80 } else { 81 System.out.println("Wrong type message: " 82 + message.getClass().getName()); 83 } 84 } catch (JMSException e) { 85 e.printStackTrace(); 88 } 89 90 try { 91 doWork(lo); 92 } catch (OrderSubmissionException oe) { 93 oe.printStackTrace(); 96 } 97 98 } 99 100 public void doWork(LodgingOrder lodge) throws OrderSubmissionException { 101 try { 102 persistOrder(lodge); 103 } catch (Exception e) { 104 e.printStackTrace(); 107 } 108 sendInvoice(lodge); 109 } 110 111 public void sendInvoice(LodgingOrder lodge) { 112 Invoice inv = new Invoice("1234", lodge.getOrderId(), 113 "LODGING_INVOICE", "COMPLETED", 114 lodge.getLodgingId().trim(), 115 "1234 Main Street, Sometown 12345, USA", 116 "No Cancelations 24 hours prior"); 117 try { 118 InitialContext ic = new InitialContext(); 119 WebServiceBroker svc = (WebServiceBroker) 120 ic.lookup(JNDINames.BROKER_SERVICE_NAME); 121 String endpointURI = (String ) 122 ic.lookup(JNDINames.BROKER_SERVICE_URL); 123 BrokerServiceIntf port= (BrokerServiceIntf) 124 svc.getPort(BrokerServiceIntf.class); 125 126 ((Stub)port)._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, 128 endpointURI); 129 port.submitDocument(inv.toXML()); 130 } catch (Exception ne) { 131 ne.printStackTrace(); 134 } 135 } 136 137 138 141 public void persistOrder(LodgingOrder lodge) 142 throws OrderSubmissionException { 143 144 try { 145 ServiceLocator sl = new ServiceLocator(); 146 147 LodgingOrderLocalHome lodgeLocalHome = (LodgingOrderLocalHome) 148 sl.getLocalHome(JNDINames.LODGE_ORDER_EJB); 149 LodgingOrderLocal lodgeLocal = 150 (LodgingOrderLocal) lodgeLocalHome.create(lodge); 151 } catch (ServiceLocatorException je) { 152 throw new OrderSubmissionException("Error LODGE persisting order:" 153 + je.getMessage()); 154 } catch(CreateException ce) { 155 throw new OrderSubmissionException("Error LODGE persisting order:" 156 + ce.getMessage()); 157 } 158 } 159 160 161 164 public void ejbCreate() {} 165 166 169 public void ejbRemove() { 170 mdc = null; 171 } 172 } 173 | Popular Tags |