I'm getting the following error when trying to run the sample client attached and got the exceptions with no idea about what could be the real problem.  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();
      }
    }
}

Reply via email to