SimpleApacheSoapClient package com.ack.webservices.soap; import java.net.URL; import java.util.Vector; import org.apache.soap.Constants; import org.apache.soap.rpc.Call; import org.apache.soap.rpc.Parameter; import org.apache.soap.rpc.Response; public class SimpleApacheSoapClient { public static void main( String[] args ) throws Exception { // soap service endpoint //URL url = new URL("http://services.xmethods.com:80/soap/servlet/rpcrouter"); URL url = new URL( "http://localhost:6666/soap/servlet/rpcrouter" ); // create a call Call call = new Call(); // Service uses standard SOAP encoding call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC ); // Set service locator parameters call.setTargetObjectURI( "urn:xmethods-Temperature" ); call.setMethodName( "getTemp" ); // Create input parameter vector Vector params = new Vector(); params.addElement( new Parameter( "zipcode", String.class, "94041", null ) ); call.setParams( params ); // Invoke the service, note that an empty SOAPActionURI of // "" indicates that intent of the SOAP request is taken to // be the request URI Response resp = call.invoke( url, "" ); // ... and evaluate the response if( resp.generatedFault() ) { throw new Exception(); } else { // Call was successful. Extract response parameter and return result Parameter result = resp.getReturnValue(); System.out.println( "temperature is -> " + result.getValue() ); } } }