1 /*
2  * @(#) $Id: EchoClient.java,v 1.2 2003/07/08 08:13:52 pankaj Exp $
3  *
4  * Copyright (c) 2002-03 by Pankaj Kumar (http://www.pankaj-k.net). 
5  * All rights reserved.
6  *
7  * The license governing the use of this file can be found in the 
8  * root directory of the containing software.
9  */
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