KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > enterprise > jbi > serviceengine > bridge > transport > JAXRPCClientTransport


1 /*
2  * Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved.
3  * Use is subject to license terms.
4  *
5  *NMClientTransport.java
6  *
7  * Created on May 4, 2005, 1:32 PM
8  */

9 package com.sun.enterprise.jbi.serviceengine.bridge.transport;
10
11 import javax.xml.namespace.QName JavaDoc;
12 import javax.xml.soap.SOAPMessage JavaDoc;
13 import javax.xml.soap.SOAPEnvelope JavaDoc;
14 import javax.xml.soap.SOAPBody JavaDoc;
15 import javax.xml.soap.SOAPPart JavaDoc;
16 // import javax.xml.rpc.BindingProvider;
17
// import javax.xml.rpc.JAXRPCContext;
18

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.jbi.component.MessageFormatHandler;
30
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 /**
35  *
36  * @author Manisha Umbarje
37  */

38 public class JAXRPCClientTransport implements ClientTransport {
39     
40     private DeliveryChannel channel;
41     //private QName svcQName;
42
private ServiceRefPortInfo portInfo;
43    
44     public JAXRPCClientTransport() {
45         channel = JavaEEServiceEngineContext.getInstance().getDeliveryChannel();
46     }
47
48     /*public void setServiceQName(QName q) {
49     svcQName = q;
50     }*/

51
52
53     public void invoke(String JavaDoc 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 JavaDoc responseMessage = meHelper.denormalizeMessage(false);
62             soapMsgContext.setMessage(responseMessage);
63     }
64     catch ( Exception JavaDoc e ) {
65         throw new TransportFailedException(e.getMessage());
66     }
67     
68     }
69     
70     public void invokeOneWay(String JavaDoc endpoint, SOAPMessageContext context) {
71         invoke(endpoint, context);
72     }
73     
74     public void setServicePortInfo(ServiceRefPortInfo portInfo) {
75         this.portInfo = portInfo;
76     }
77 }
78
Popular Tags