KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > hwDispatch > client > Client


1 package demo.hwDispatch.client;
2
3 import java.io.File JavaDoc;
4 import java.io.InputStream JavaDoc;
5 import java.net.URL JavaDoc;
6
7 import javax.xml.namespace.QName JavaDoc;
8 import javax.xml.soap.MessageFactory JavaDoc;
9 import javax.xml.soap.SOAPMessage JavaDoc;
10 import javax.xml.transform.dom.DOMSource JavaDoc;
11 import javax.xml.ws.Dispatch;
12 import javax.xml.ws.Service.Mode;
13
14 import org.objectweb.hello_world_soap_http.SOAPService1;
15 import org.objectweb.hello_world_soap_http.SOAPService2;
16 import org.objectweb.hello_world_soap_http.SOAPService3;
17
18 public final class Client {
19     
20     private Client() {
21     }
22
23     public static void main(String JavaDoc args[]) throws Exception JavaDoc {
24         
25         if (args.length == 0) {
26             System.out.println("please specify wsdl");
27             System.exit(1);
28         }
29     
30         URL JavaDoc wsdlURL;
31         File JavaDoc wsdlFile = new File JavaDoc(args[0]);
32         if (wsdlFile.exists()) {
33             wsdlURL = wsdlFile.toURL();
34         } else {
35             wsdlURL = new URL JavaDoc(args[0]);
36         }
37         
38         MessageFactory JavaDoc factory = MessageFactory.newInstance();
39         System.out.println(wsdlURL + "\n\n");
40
41         QName JavaDoc serviceName1 = new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SOAPService1");
42         QName JavaDoc portName1 = new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SoapPort1");
43         
44         SOAPService1 service1 = new SOAPService1(wsdlURL, serviceName1);
45         InputStream JavaDoc is1 = Client.class.getResourceAsStream("GreetMeDocLiteralReq1.xml");
46         SOAPMessage JavaDoc soapReq1 = factory.createMessage(null, is1);
47
48         Dispatch<SOAPMessage JavaDoc> dispSOAPMsg = service1.createDispatch(portName1,
49                                                                     SOAPMessage JavaDoc.class, Mode.MESSAGE);
50         
51         System.out.println("Invoking server through Dispatch interface using SOAPMessage");
52         SOAPMessage JavaDoc soapResp = dispSOAPMsg.invoke(soapReq1);
53         System.out.println("Response from server: " + soapResp.getSOAPBody().getTextContent());
54
55         QName JavaDoc serviceName2 = new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SOAPService2");
56         QName JavaDoc portName2 = new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SoapPort2");
57         
58         SOAPService2 service2 = new SOAPService2(wsdlURL, serviceName2);
59         InputStream JavaDoc is2 = Client.class.getResourceAsStream("GreetMeDocLiteralReq2.xml");
60         SOAPMessage JavaDoc soapReq2 = factory.createMessage(null, is2);
61         DOMSource JavaDoc domReqMessage = new DOMSource JavaDoc(soapReq2.getSOAPPart());
62
63         Dispatch<DOMSource JavaDoc> dispDOMSrcMessage = service2.createDispatch(portName2,
64                                                                         DOMSource JavaDoc.class, Mode.MESSAGE);
65         System.out.println("Invoking server through Dispatch interface using DOMSource in MESSAGE Mode");
66         DOMSource JavaDoc domRespMessage = dispDOMSrcMessage.invoke(domReqMessage);
67         System.out.println("Response from server: "
68                            + domRespMessage.getNode().getFirstChild().getTextContent());
69               
70
71         QName JavaDoc serviceName3 = new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SOAPService3");
72         QName JavaDoc portName3 = new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SoapPort3");
73         
74         SOAPService3 service3 = new SOAPService3(wsdlURL, serviceName3);
75         InputStream JavaDoc is3 = Client.class.getResourceAsStream("GreetMeDocLiteralReq3.xml");
76         SOAPMessage JavaDoc soapReq3 = MessageFactory.newInstance().createMessage(null, is3);
77         DOMSource JavaDoc domReqPayload = new DOMSource JavaDoc(soapReq3.getSOAPBody().extractContentAsDocument());
78              
79         Dispatch<DOMSource JavaDoc> dispDOMSrcPayload = service3.createDispatch(portName3,
80                                                                         DOMSource JavaDoc.class, Mode.PAYLOAD);
81         System.out.println("Invoking server through Dispatch interface using DOMSource in PAYLOAD Mode");
82         DOMSource JavaDoc domRespPayload = dispDOMSrcPayload.invoke(domReqPayload);
83         System.out.println("Response from server: "
84                            + domRespPayload.getNode().getFirstChild().getTextContent());
85         
86         System.exit(0);
87     }
88
89 }
90
Popular Tags