KickJava   Java API By Example, From Geeks To Geeks.

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


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.Service;
11 import javax.xml.ws.ServiceMode;
12 import javax.xml.ws.WebServiceProvider;
13
14 import org.w3c.dom.Node JavaDoc;
15
16 //The following wsdl file is used.
17
//wsdlLocation = "C:/CeltixSVN/trunk/celtix-testutils/src/main/resources/wsdl/hello_world_rpc_lit.wsdl"
18
@WebServiceProvider(portName = "SoapPortRPCLit1", serviceName = "SOAPServiceRPCLit1",
19                       targetNamespace = "http://objectweb.org/hello_world_rpclit",
20  wsdlLocation = "/wsdl/hello_world_rpc_lit.wsdl")
21 @ServiceMode(value = Service.Mode.MESSAGE)
22 public class HWDOMSourceMessageProvider implements Provider<DOMSource JavaDoc> {
23
24     private static QName JavaDoc sayHi = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "sayHi");
25     private static QName JavaDoc greetMe = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "greetMe");
26     private SOAPMessage JavaDoc sayHiResponse;
27     private SOAPMessage JavaDoc greetMeResponse;
28     private MessageFactory JavaDoc factory;
29
30     public HWDOMSourceMessageProvider() {
31
32         try {
33             factory = MessageFactory.newInstance();
34             InputStream JavaDoc is = getClass().getResourceAsStream("resources/sayHiRpcLiteralResp.xml");
35             sayHiResponse = factory.createMessage(null, is);
36             is.close();
37             is = getClass().getResourceAsStream("resources/GreetMeRpcLiteralResp.xml");
38             greetMeResponse = factory.createMessage(null, is);
39             is.close();
40         } catch (Exception JavaDoc ex) {
41             ex.printStackTrace();
42         }
43     }
44
45     public DOMSource JavaDoc invoke(DOMSource JavaDoc request) {
46         DOMSource JavaDoc response = new DOMSource JavaDoc();
47         try {
48             SOAPMessage JavaDoc msg = factory.createMessage();
49             msg.getSOAPPart().setContent(request);
50             SOAPBody JavaDoc body = msg.getSOAPBody();
51             Node JavaDoc n = body.getFirstChild();
52
53             while (n.getNodeType() != Node.ELEMENT_NODE) {
54                 n = n.getNextSibling();
55             }
56             if (n.getLocalName().equals(sayHi.getLocalPart())) {
57                 response.setNode(sayHiResponse.getSOAPPart());
58             } else if (n.getLocalName().equals(greetMe.getLocalPart())) {
59                 response.setNode(greetMeResponse.getSOAPPart());
60             }
61         } catch (Exception JavaDoc ex) {
62             ex.printStackTrace();
63         }
64         return response;
65     }
66 }
67
Popular Tags