You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2003/12/09 22:21:39 UTC

cvs commit: ws-axis/java/test/client TestCall.java

dims        2003/12/09 13:21:39

  Modified:    java/test/client TestCall.java
  Log:
  Add try/catch and timeout.
  
  Revision  Changes    Path
  1.2       +29 -9     ws-axis/java/test/client/TestCall.java
  
  Index: TestCall.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/test/client/TestCall.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestCall.java	28 Nov 2003 03:57:51 -0000	1.1
  +++ TestCall.java	9 Dec 2003 21:21:39 -0000	1.2
  @@ -63,6 +63,8 @@
   import org.apache.axis.handlers.BasicHandler;
   
   import java.net.URL;
  +import java.net.ConnectException;
  +import java.io.InterruptedIOException;
   
   public class TestCall extends TestCase {
       public TestCall(String name) {
  @@ -77,15 +79,33 @@
       }
   
       /* Test case for Bug 23031 - No deserializer found for ns1:ArrayOfstring */
  -    public void testWeatherService() throws Exception {
  -        Call call = new Call(new URL("http://live.capescience.com:80/ccx/GlobalWeather"));
  -        call.setUseSOAPAction(true);
  -        call.setSOAPActionURI("capeconnect:GlobalWeather:StationInfo#listCountries");
  -        call.setOperationName(new javax.xml.namespace.QName("capeconnect:GlobalWeather:StationInfo", "listCountries"));
  -        String[] c = (String[]) call.invoke(new Object[]{});
  -        System.out.println(c.length);
  -        for (int i = 0; i < c.length; i++) {
  -            System.out.println(c[i]);
  +    public void testWeatherService() {
  +        try {
  +            Call call = new Call(new URL("http://live.capescience.com:80/ccx/GlobalWeather"));
  +            call.setUseSOAPAction(true);
  +            call.setSOAPActionURI("capeconnect:GlobalWeather:StationInfo#listCountries");
  +            call.setTimeout(new Integer(15*1000));
  +            call.setOperationName(new javax.xml.namespace.QName("capeconnect:GlobalWeather:StationInfo", "listCountries"));
  +            String[] c = (String[]) call.invoke(new Object[]{});
  +            System.out.println(c.length);
  +            for (int i = 0; i < c.length; i++) {
  +                System.out.println(c[i]);
  +            }
  +        }  catch (java.rmi.RemoteException re) {
  +            if (re instanceof AxisFault) {
  +                AxisFault fault = (AxisFault) re;
  +                if (fault.detail instanceof ConnectException ||
  +                    fault.detail instanceof InterruptedIOException ||
  +                    (fault.getFaultString().indexOf("Connection timed out") != -1) ||
  +                    fault.getFaultCode().getLocalPart().equals("HTTP")) {
  +                    System.err.println("getTemp HTTP error: " + fault);
  +                    return;
  +                }
  +            }
  +            throw new junit.framework.AssertionFailedError("Remote Exception caught: " + re);
  +        }  catch (java.io.IOException ioe) {
  +            System.err.println("testWeatherService connect error: " + ioe);
  +            return;
           }
       }
   }