KickJava   Java API By Example, From Geeks To Geeks.

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


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.ws.Provider;
9 import javax.xml.ws.Service;
10 import javax.xml.ws.ServiceMode;
11 import javax.xml.ws.WebServiceProvider;
12
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 = "SoapPortRPCLit", serviceName = "SOAPServiceRPCLit",
18                       targetNamespace = "http://objectweb.org/hello_world_rpclit",
19  wsdlLocation = "/wsdl/hello_world_rpc_lit.wsdl")
20 @ServiceMode(value = Service.Mode.MESSAGE)
21 public class HWSoapMessageProvider implements Provider<SOAPMessage JavaDoc> {
22
23     private static QName JavaDoc sayHi = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "sayHi");
24     private static QName JavaDoc greetMe = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "greetMe");
25     private SOAPMessage JavaDoc sayHiResponse;
26     private SOAPMessage JavaDoc greetMeResponse;
27     
28     public HWSoapMessageProvider() {
29        
30         try {
31             MessageFactory JavaDoc 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 SOAPMessage JavaDoc invoke(SOAPMessage JavaDoc request) {
44         SOAPMessage JavaDoc response = null;
45         try {
46             SOAPBody JavaDoc body = request.getSOAPBody();
47             Node JavaDoc n = body.getFirstChild();
48
49             while (n.getNodeType() != Node.ELEMENT_NODE) {
50                 n = n.getNextSibling();
51             }
52             if (n.getLocalName().equals(sayHi.getLocalPart())) {
53                 response = sayHiResponse;
54             } else if (n.getLocalName().equals(greetMe.getLocalPart())) {
55                 response = greetMeResponse;
56             }
57         } catch (Exception JavaDoc ex) {
58             ex.printStackTrace();
59         }
60         return response;
61     }
62 }
63
Popular Tags