1 package demo.jms_greeter.client; 2 3 import java.io.File ; 4 import java.lang.reflect.InvocationHandler ; 5 import java.lang.reflect.Proxy ; 6 import java.util.Map ; 7 8 import javax.xml.namespace.QName ; 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 SERVICE_NAME = 19 new QName ("http://celtix.objectweb.org/jms_greeter", "JMSGreeterService"); 20 private static final QName PORT_NAME = 21 new QName ("http://celtix.objectweb.org/jms_greeter", "JMSGreeterPortType"); 22 23 private Client() { 24 } 25 26 public static void main(String [] args) throws Exception { 27 28 if (args.length == 0) { 29 System.out.println("please specify wsdl"); 30 System.exit(1); 31 } 32 33 File wsdl = new File (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 53 InvocationHandler handler = Proxy.getInvocationHandler(greeter); 54 55 BindingProvider bp = null; 56 57 if (handler instanceof BindingProvider) { 58 bp = (BindingProvider)handler; 59 Map <String , Object > 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 requestContext.put("org.objectweb.celtix.jms.client.timeout", new Long (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 <String , Object > 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 |