1 37 38 package com.sun.j2ee.blueprints.activitysupplier.powebservice; 39 40 import javax.ejb.*; 41 import java.rmi.*; 42 import javax.jms.*; 43 import com.sun.j2ee.blueprints.activitysupplier.JNDINames; 44 import com.sun.j2ee.blueprints.servicelocator.*; 45 import com.sun.j2ee.blueprints.servicelocator.ejb.*; 46 47 51 public class ActivityPOEndpointBean implements SessionBean { 52 53 private SessionContext sc; 54 55 public ActivityPOEndpointBean(){} 56 57 public void ejbCreate() throws CreateException {} 58 59 64 public String submitActivityReservationDetails(String xmlPO) 65 throws InvalidOrderException, OrderSubmissionException, 66 RemoteException { 67 68 ActivityOrder order = preProcessInput(xmlPO); 70 71 submitRequest(order); 73 74 return("ACT1234"); 76 } 77 78 private ActivityOrder preProcessInput(String po) 79 throws InvalidOrderException { 80 return(ActivityOrder.fromXML(po)); 84 } 85 86 private void submitRequest(ActivityOrder act) 87 throws OrderSubmissionException { 88 89 ConnectionFactory jmsConnectionFactory = null; 90 Destination jmsDest = null; 91 Connection jmsConnection = null; 92 Session jmsSession = null; 93 MessageProducer jmsSender = null; 94 95 try { 96 ServiceLocator sl = new ServiceLocator(); 97 jmsConnectionFactory = (ConnectionFactory) 98 sl.getJMSConnectionFactory(JNDINames.ACT_QUEUECONNECTIONFACTORY); 99 jmsDest = sl.getJMSDestination(JNDINames.ACT_QUEUE); 100 jmsConnection = jmsConnectionFactory.createConnection(); 101 jmsSession = jmsConnection.createSession(true, 102 Session.AUTO_ACKNOWLEDGE); 103 jmsSender = jmsSession.createProducer(jmsDest); 104 105 ObjectMessage message = jmsSession.createObjectMessage(); 106 message.setObject(act); 107 jmsSender.send(message); 108 } catch (ServiceLocatorException se) { 109 throw new OrderSubmissionException("Error while sending a message:" 110 + se.getMessage()); 111 } catch (JMSException e) { 112 throw new OrderSubmissionException("Error while sending a message:" 113 + e.getMessage()); 114 } finally { 115 if (jmsSender != null) { 117 try { 118 jmsSender.close(); 119 } catch (JMSException e) { 120 throw new OrderSubmissionException("Error sender close"); 121 } 122 } 123 if (jmsSession != null) { 124 try { 125 jmsSession.close(); 126 } catch (JMSException e) { 127 throw new OrderSubmissionException("Error session close"); 128 } 129 } 130 if (jmsConnection != null) { 131 try { 132 jmsConnection.close(); 133 } catch (JMSException e) { 134 throw new OrderSubmissionException("Error Connection close"); 135 } 136 } 137 } 138 } 139 140 public void setSessionContext(SessionContext sc) { 141 this.sc = sc; 142 } 143 144 public void ejbRemove() throws RemoteException {} 145 146 public void ejbActivate() {} 148 149 public void ejbPassivate() {} 151 } 152 | Popular Tags |