KickJava   Java API By Example, From Geeks To Geeks.

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


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.stream.StreamSource 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
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 = "SoapPortRPCLit4", serviceName = "SOAPServiceRPCLit4",
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 HWStreamSourceMessageProvider implements Provider<StreamSource 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 InputStream JavaDoc sayHiInputStream;
30     private InputStream JavaDoc greetMeInputStream;
31     private MessageFactory JavaDoc factory;
32
33     public HWStreamSourceMessageProvider() {
34
35         try {
36             factory = MessageFactory.newInstance();
37             sayHiInputStream = getClass().getResourceAsStream("resources/sayHiRpcLiteralResp.xml");
38             greetMeInputStream = getClass().getResourceAsStream("resources/GreetMeRpcLiteralResp.xml");
39
40         } catch (Exception JavaDoc ex) {
41             ex.printStackTrace();
42         }
43     }
44
45     public StreamSource JavaDoc invoke(StreamSource JavaDoc request) {
46         StreamSource JavaDoc response = new StreamSource 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.setInputStream(sayHiInputStream);
58             } else if (n.getLocalName().equals(greetMe.getLocalPart())) {
59                 response.setInputStream(greetMeInputStream);
60             }
61         } catch (Exception JavaDoc ex) {
62             ex.printStackTrace();
63         }
64         return response;
65     }
66
67 }
68
Popular Tags