1
10import javax.xml.namespace.QName;
11import javax.xml.rpc.ServiceFactory;
12import javax.xml.rpc.Service;
13import javax.xml.rpc.Call;
14
15import java.util.Vector;
16import java.util.HashMap;
17
18public class EchoClient{
19 public static void main(String [] args) throws Exception {
20 String epAddr = "http://localhost:8080/axis/services/StringEchoPort2";
21 String wsdlAddr = epAddr + "?wsdl";
22 String nameSpaceUri = "http://www.pankaj-k.net/jsbook/examples/";
23 String svcName = "StringEchoService2";
24 String portName = "StringEchoPort2";
25
26 java.net.URL wsdlUrl = new java.net.URL(wsdlAddr);
27 ServiceFactory svcFactory = ServiceFactory.newInstance();
28 QName svcQName = new QName(nameSpaceUri, svcName);
29 Service svc = svcFactory.createService(wsdlUrl, svcQName);
30
31 HashMap configProps = new HashMap();
32 configProps.put("keyStoreFile", "client.ks");
33 configProps.put("trustStoreFile", "client.ts");
34 configProps.put("certEntryAlias", "serverkey");
35
36 Class handlerClass = org.jstk.wss4axis.WSSClientHandler.class;
37 java.util.List list = svc.getHandlerRegistry().
38 getHandlerChain(new QName(nameSpaceUri, portName));
39 list.add(new javax.xml.rpc.handler.HandlerInfo(handlerClass, configProps, null));
40
41 Call call = (Call) svc.createCall();
42
43 call.setTargetEndpointAddress(epAddr);
44 call.setOperationName( new QName(nameSpaceUri, "echo") );
45 call.setPortTypeName( new QName(nameSpaceUri, portName) );
46
47 Object arg = "Hi, How are you?";
48 System.out.println("sending: " + arg );
49 String res = (String) call.invoke(new Object[] {arg});
50 System.out.println("received: " + res );
51 }
52}
53