KickJava   Java API By Example, From Geeks To Geeks.

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


1 package demo.jms_greeter.client;
2
3 import java.io.File JavaDoc;
4 import java.lang.reflect.InvocationHandler JavaDoc;
5 import java.lang.reflect.Proxy JavaDoc;
6 import java.util.Map JavaDoc;
7
8 import javax.xml.namespace.QName JavaDoc;
9 import javax.xml.ws.BindingProvider;
10 import org.objectweb.celtix.jms_greeter.JMSGreeterPortType;
11 import org.objectweb.celtix.jms_greeter.JMSGreeterService;
12 import org.objectweb.celtix.transports.jms.context.JMSMessageHeadersType;
13 import org.objectweb.celtix.transports.jms.context.JMSPropertyType;
14
15
16 public final class Client {
17
18     private static final QName JavaDoc SERVICE_NAME =
19         new QName JavaDoc("http://celtix.objectweb.org/jms_greeter", "JMSGreeterService");
20     private static final QName JavaDoc PORT_NAME =
21         new QName JavaDoc("http://celtix.objectweb.org/jms_greeter", "JMSGreeterPortType");
22
23     private Client() {
24     }
25
26     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
27
28         if (args.length == 0) {
29             System.out.println("please specify wsdl");
30             System.exit(1);
31         }
32
33         File JavaDoc wsdl = new File JavaDoc(args[0]);
34
35         JMSGreeterService service = new JMSGreeterService(wsdl.toURL(), SERVICE_NAME);
36         JMSGreeterPortType greeter = (JMSGreeterPortType)service.getPort(PORT_NAME, JMSGreeterPortType.class);
37
38         System.out.println("Invoking sayHi...");
39         System.out.println("server responded with: " + greeter.sayHi());
40         System.out.println();
41
42         System.out.println("Invoking greetMe...");
43         System.out.println("server responded with: " + greeter.greetMe(System.getProperty("user.name")));
44         System.out.println();
45
46         System.out.println("Invoking greetMeOneWay...");
47         greeter.greetMeOneWay(System.getProperty("user.name"));
48         System.out.println("No response from server as method is OneWay");
49         System.out.println();
50
51         // Demonstration of JMS Context usage
52

53         InvocationHandler JavaDoc handler = Proxy.getInvocationHandler(greeter);
54
55         BindingProvider bp = null;
56
57         if (handler instanceof BindingProvider) {
58             bp = (BindingProvider)handler;
59             Map JavaDoc<String JavaDoc, Object JavaDoc> requestContext = bp.getRequestContext();
60             JMSMessageHeadersType requestHeader = new JMSMessageHeadersType();
61             requestHeader.setJMSCorrelationID("JMS_QUEUE_SAMPLE_CORRELATION_ID");
62             requestHeader.setJMSExpiration(3600000L);
63             JMSPropertyType propType = new JMSPropertyType();
64             propType.setName("Test.Prop");
65             propType.setValue("mustReturn");
66             requestHeader.getProperty().add(propType);
67             requestContext.put("org.objectweb.celtix.jms.client.request.headers", requestHeader);
68             //To override the default receive timeout.
69
requestContext.put("org.objectweb.celtix.jms.client.timeout", new Long JavaDoc(1000));
70         }
71
72         System.out.println("Invoking sayHi with JMS Context information ...");
73         System.out.println("server responded with: " + greeter.sayHi());
74
75         if (bp != null) {
76             Map JavaDoc<String JavaDoc, Object JavaDoc> responseContext = bp.getResponseContext();
77             JMSMessageHeadersType responseHdr = (JMSMessageHeadersType)responseContext.get(
78                                        "org.objectweb.celtix.jms.client.response.headers");
79             if (responseHdr == null) {
80                 System.out.println("response Header should not be null");
81                 System.out.println();
82                 System.exit(1);
83             }
84
85             if ("JMS_QUEUE_SAMPLE_CORRELATION_ID".equals(responseHdr.getJMSCorrelationID())
86                 && responseHdr.getProperty() != null) {
87                 System.out.println("Received expected contents in response context");
88             } else {
89                 System.out.println("Received wrong contents in response context");
90                 System.out.println();
91                 System.exit(2);
92             }
93         } else {
94             System.out.println("Failed to get the binding provider cannot access context info.");
95             System.exit(3);
96         }
97
98
99         System.out.println();
100
101         System.exit(0);
102     }
103 }
104
Popular Tags