KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > systest > provider > HWDOMSourcePayloadProvider


1 package org.objectweb.celtix.systest.provider;
2 import java.io.InputStream JavaDoc;
3
4 import javax.xml.namespace.QName JavaDoc;
5 import javax.xml.soap.MessageFactory JavaDoc;
6 import javax.xml.soap.SOAPBody JavaDoc;
7 import javax.xml.soap.SOAPMessage JavaDoc;
8 import javax.xml.transform.dom.DOMSource JavaDoc;
9 import javax.xml.ws.Provider;
10 import javax.xml.ws.WebServiceProvider;
11
12 import org.w3c.dom.Document JavaDoc;
13 import org.w3c.dom.Node JavaDoc;
14
15 //The following wsdl file is used.
16
//wsdlLocation = "C:/CeltixSVN/trunk/celtix-testutils/src/main/resources/wsdl/hello_world_rpc_lit.wsdl"
17
@WebServiceProvider(portName = "SoapPortRPCLit2", serviceName = "SOAPServiceRPCLit2",
18                       targetNamespace = "http://objectweb.org/hello_world_rpclit",
19  wsdlLocation = "/wsdl/hello_world_rpc_lit.wsdl")
20 public class HWDOMSourcePayloadProvider implements Provider<DOMSource JavaDoc> {
21
22     private static QName JavaDoc sayHi = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "sayHi");
23     private static QName JavaDoc greetMe = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "greetMe");
24     private SOAPMessage JavaDoc sayHiResponse;
25     private SOAPMessage JavaDoc greetMeResponse;
26     private MessageFactory JavaDoc factory;
27
28     public HWDOMSourcePayloadProvider() {
29
30         try {
31             factory = MessageFactory.newInstance();
32             InputStream JavaDoc is = getClass().getResourceAsStream("resources/sayHiRpcLiteralResp.xml");
33             sayHiResponse = factory.createMessage(null, is);
34             is.close();
35             is = getClass().getResourceAsStream("resources/GreetMeRpcLiteralResp.xml");
36             greetMeResponse = factory.createMessage(null, is);
37             is.close();
38         } catch (Exception JavaDoc ex) {
39             ex.printStackTrace();
40         }
41     }
42
43     public DOMSource JavaDoc invoke(DOMSource JavaDoc request) {
44         DOMSource JavaDoc response = new DOMSource JavaDoc();
45         try {
46             SOAPMessage JavaDoc msg = factory.createMessage();
47             SOAPBody JavaDoc body = msg.getSOAPBody();
48             body.addDocument((Document JavaDoc)request.getNode());
49
50             Node JavaDoc n = getElementChildNode(body);
51             if (n.getLocalName().equals(sayHi.getLocalPart())) {
52                 response.setNode(sayHiResponse.getSOAPBody().extractContentAsDocument());
53             } else if (n.getLocalName().equals(greetMe.getLocalPart())) {
54                 response.setNode(greetMeResponse.getSOAPBody().extractContentAsDocument());
55             }
56         } catch (Exception JavaDoc ex) {
57             ex.printStackTrace();
58         }
59         return response;
60     }
61     
62     private Node JavaDoc getElementChildNode(SOAPBody JavaDoc body) {
63         Node JavaDoc n = body.getFirstChild();
64
65         while (n.getNodeType() != Node.ELEMENT_NODE) {
66             n = n.getNextSibling();
67         }
68         
69         return n;
70     }
71 }
72
Popular Tags