1 9 package com.sun.enterprise.jbi.serviceengine.bridge.transport; 10 11 import javax.xml.namespace.QName ; 12 import javax.xml.soap.SOAPMessage ; 13 import javax.xml.soap.SOAPEnvelope ; 14 import javax.xml.soap.SOAPBody ; 15 import javax.xml.soap.SOAPPart ; 16 19 import javax.jbi.component.ComponentContext; 20 import javax.jbi.messaging.NormalizedMessage; 21 import javax.jbi.messaging.InOut; 22 import javax.jbi.messaging.MessageExchangeFactory; 23 import javax.jbi.messaging.DeliveryChannel; 24 import javax.jbi.servicedesc.ServiceEndpoint; 25 26 import com.sun.xml.rpc.client.ClientTransport; 27 import com.sun.xml.rpc.soap.message.SOAPMessageContext; 28 29 import com.sun.enterprise.deployment.ServiceRefPortInfo; 31 import com.sun.enterprise.jbi.serviceengine.core.JavaEEServiceEngineContext; 32 import com.sun.enterprise.jbi.serviceengine.util.soap.MessageExchangeHelper; 33 34 38 public class JAXRPCClientTransport implements ClientTransport { 39 40 private DeliveryChannel channel; 41 private ServiceRefPortInfo portInfo; 43 44 public JAXRPCClientTransport() { 45 channel = JavaEEServiceEngineContext.getInstance().getDeliveryChannel(); 46 } 47 48 51 52 53 public void invoke(String endpoint, SOAPMessageContext soapMsgContext) { 54 55 try { 56 57 MessageExchangeHelper meHelper = new MessageExchangeHelper(); 58 meHelper.initializeMessageExchange(portInfo,false); 59 meHelper.normalizeMessage(soapMsgContext.getMessage(), true); 60 meHelper.dispatchMessage(); 61 SOAPMessage responseMessage = meHelper.denormalizeMessage(false); 62 soapMsgContext.setMessage(responseMessage); 63 } 64 catch ( Exception e ) { 65 throw new TransportFailedException(e.getMessage()); 66 } 67 68 } 69 70 public void invokeOneWay(String endpoint, SOAPMessageContext context) { 71 invoke(endpoint, context); 72 } 73 74 public void setServicePortInfo(ServiceRefPortInfo portInfo) { 75 this.portInfo = portInfo; 76 } 77 } 78 | Popular Tags |