KickJava   Java API By Example, From Geeks To Geeks.

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


1 package demo.ws_addressing.client;
2
3 import java.io.File JavaDoc;
4 import java.lang.reflect.UndeclaredThrowableException JavaDoc;
5 import java.util.Map JavaDoc;
6 import javax.xml.namespace.QName JavaDoc;
7 import javax.xml.ws.BindingProvider;
8
9 import org.objectweb.celtix.ws.addressing.AddressingBuilder;
10 import org.objectweb.celtix.ws.addressing.AddressingProperties;
11 import org.objectweb.celtix.ws.addressing.AttributedURIType;
12 import org.objectweb.celtix.ws.addressing.ObjectFactory;
13 import org.objectweb.celtix.ws.addressing.RelatesToType;
14
15 import org.objectweb.hello_world_soap_http.Greeter;
16 import org.objectweb.hello_world_soap_http.PingMeFault;
17 import org.objectweb.hello_world_soap_http.SOAPService;
18
19 import static org.objectweb.celtix.ws.addressing.JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES;
20
21
22 public final class Client {
23     
24     private static final QName JavaDoc SERVICE_NAME =
25         new QName JavaDoc("http://objectweb.org/hello_world_soap_http", "SOAPService");
26     private static final ObjectFactory WSA_OBJECT_FACTORY =
27         new ObjectFactory();
28     private static final String JavaDoc USER_NAME = System.getProperty("user.name");
29
30
31     private Client() {
32     }
33
34     public static void main(String JavaDoc args[]) throws Exception JavaDoc {
35         if (args.length == 0) {
36             System.out.println("please specify wsdl");
37             System.exit(1);
38         }
39         
40         try {
41             File JavaDoc wsdl = new File JavaDoc(args[0]);
42             SOAPService service = new SOAPService(wsdl.toURL(), SERVICE_NAME);
43             Greeter port = service.getSoapPort();
44
45             implicitPropagation(port);
46
47             explicitPropagation(port);
48
49             implicitPropagation(port);
50
51         } catch (UndeclaredThrowableException JavaDoc ex) {
52             ex.getUndeclaredThrowable().printStackTrace();
53         } catch (Exception JavaDoc ex) {
54             ex.printStackTrace();
55         } finally {
56             System.exit(0);
57         }
58     }
59
60     /**
61      * A series of invocations with implicitly propogated
62      * Message Addressing Properties.
63      */

64     private static void implicitPropagation(Greeter port) {
65         System.out.println();
66         System.out.println("Implicit MessageAddressingProperties propagation");
67         System.out.println("------------------------------------------------");
68
69         System.out.println("Invoking sayHi...");
70         String JavaDoc resp = port.sayHi();
71         System.out.println("Server responded with: " + resp + "\n");
72
73         System.out.println("Invoking greetMe...");
74         resp = port.greetMe(USER_NAME);
75         System.out.println("Server responded with: " + resp + "\n");
76
77         System.out.println("Invoking greetMeOneWay...");
78         port.greetMeOneWay(USER_NAME);
79         System.out.println("No response from server as method is OneWay\n");
80
81         try {
82             System.out.println("Invoking pingMe, expecting exception...");
83             port.pingMe();
84         } catch (PingMeFault ex) {
85             System.out.println("Expected exception occurred: " + ex);
86         }
87     }
88
89     /**
90      * A series of invocations with explicitly propogated
91      * Message Addressing Properties.
92      */

93     private static void explicitPropagation(Greeter port) {
94         System.out.println();
95         System.out.println("Explicit MessageAddressingProperties propagation");
96         System.out.println("------------------------------------------------");
97
98         // get Message Addressing Properties instance
99
AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
100         AddressingProperties maps = builder.newAddressingProperties();
101
102         // set MessageID property
103
AttributedURIType messageID =
104             WSA_OBJECT_FACTORY.createAttributedURIType();
105         messageID.setValue("urn:uuid:12345");
106         maps.setMessageID(messageID);
107
108         // associate MAPs with request context
109
Map JavaDoc<String JavaDoc, Object JavaDoc> requestContext =
110             ((BindingProvider)port).getRequestContext();
111         requestContext.put(CLIENT_ADDRESSING_PROPERTIES, maps);
112
113         System.out.println("Invoking sayHi...");
114         String JavaDoc resp = port.sayHi();
115         System.out.println("Server responded with: " + resp + "\n");
116
117         // clear the message ID to ensure a duplicate is not sent on the
118
// next invocation
119
maps.setMessageID(null);
120
121         // set the RelatesTo property to the initial message ID, so that
122
// the series of invocations are explicitly related
123
RelatesToType relatesTo = WSA_OBJECT_FACTORY.createRelatesToType();
124         relatesTo.setValue(messageID.getValue());
125         maps.setRelatesTo(relatesTo);
126
127         System.out.println("Invoking greetMe...");
128         resp = port.greetMe(USER_NAME);
129         System.out.println("Server responded with: " + resp + "\n");
130
131         System.out.println("Invoking greetMeOneWay...");
132         port.greetMeOneWay(USER_NAME);
133         System.out.println("No response from server as method is OneWay\n");
134
135         // disassociate MAPs from request context
136
requestContext.put(CLIENT_ADDRESSING_PROPERTIES, null);
137     }
138 }
139
Popular Tags