KickJava   Java API By Example, From Geeks To Geeks.

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


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