package examples.handler; import java.util.ArrayList; import java.util.List; import javax.xml.rpc.Call; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.Service; import javax.xml.rpc.ServiceFactory; import javax.xml.namespace.QName; import javax.xml.rpc.handler.HandlerInfo; import javax.xml.rpc.handler.HandlerRegistry; import weblogic.utils.Debug; /** * @author Copyright (c) 2002 by BEA Systems. All Rights Reserved. */ public final class Client { public static void main( String[] args ) throws Exception{ //set weblogic ServiceFactory System.setProperty( "javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl" ); //create service factory ServiceFactory factory = ServiceFactory.newInstance(); //define qnames String targetNamespace = "http://foo.bar.com/echostring"; QName serviceName = new QName( targetNamespace, "EchoService"); QName portName = new QName( targetNamespace, "EchoServicePort"); QName operationName = new QName( "f"); //create service Service service = factory.createService( serviceName ); //setup Handler(s) HandlerRegistry registry = service.getHandlerRegistry(); List hList = new ArrayList(); hList.add( new HandlerInfo(HelloWorldHandler.class, null, null) ); registry.setHandlerChain(portName, hList); //create call Call call = service.createCall(); //set port and operation name call.setPortTypeName( portName ); call.setOperationName( operationName ); //add parameters call.addParameter( "param", new QName( "http://www.w3.org/2001/XMLSchema", "string" ), ParameterMode.IN ); call.addParameter( "result", new QName( "http://www.w3.org/2001/XMLSchema", "string" ), ParameterMode.OUT ); //set end point address call.setTargetEndpointAddress( "http://localhost:7001/handler/EchoService"); // Add in client-side handlers: Object result = call.invoke( new Object[]{ "BEAS" } ); System.out.println("** Got result: "+result); } }