I'm getting the following error when trying to
run the sample client and got the exceptions with no idea about what could
be the real problem. The client code is attached. Thanks for any
help.
-Shao
[SOAPException: faultCode=SOAP-ENV:Client;
msg=Error opening socket: java.net.ConnectException: Connection timed out:
connect; targetException=java.lang.IllegalArgumentException: Error opening
socket: java.net.ConnectException: Connection timed out: connect]
at
org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:354)
at
org.apache.soap.rpc.Call.invoke(Call.java:248)
at
com.uhc.ubh.facets.util.CurrencyExchange.getRate(CurrencyExchange.java:46)
at
com.uhc.ubh.facets.util.CurrencyExchange.main(CurrencyExchange.java:21)
import java.io.*;
import java.net.*; import java.util.*; import org.apache.soap.util.xml.*; import org.apache.soap.*; import org.apache.soap.rpc.*; public class CurrencyExchange { public static void main(String[] args) { try { String url = "" String("http://services.xmethods.net:80/soap"); String country1= "us"; String country2= "taiwan"; float rate = getRate(url, country1, country2); System.out.println(rate); } catch (Exception ex) { ex.printStackTrace(); } } public static float getRate (String url, String country1, String country2) throws Exception { Call call = new Call(); // Service uses standard SOAP encoding String encodingStyleURI = Constants.NS_URI_SOAP_ENC; call.setEncodingStyleURI(encodingStyleURI); // Set service
locator parameters
call.setTargetObjectURI("urn:xmethods-CurrencyExchange"); call.setMethodName("getRate"); call.setTimeout(600); // Create input
parameter vector
Vector params = new Vector(); params.addElement(new Parameter("country1", String.class, country1, null)); params.addElement(new Parameter("country2", String.class, country2, null)); call.setParams(params); // Invoke the
service ....
Response resp = call.invoke(new java.net.URL(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(); Float rate = (Float) result.getValue(); return rate.floatValue(); } } } |