Esempio n. 1
0
  public void doCall(String method, Object value) throws Exception {
    Call call = new Call();
    call.setTargetObjectURI("http://soapinterop.org/");
    call.setMethodName(method);
    call.setEncodingStyleURI(encodingStyleURI);

    Vector params = new Vector();
    params.addElement(new Parameter("in", value.getClass(), value, null));
    call.setParams(params);

    // make the call: note that the action URI is empty because the
    // XML-SOAP rpc router does not need this. This may change in the
    // future.
    Response resp = call.invoke(url, "");

    // Check the response.
    if (resp.generatedFault()) {
      Fault fault = resp.getFault();
      System.out.println("Ouch, the call failed: ");
      System.out.println("  Fault Code   = " + fault.getFaultCode());
      System.out.println("  Fault String = " + fault.getFaultString());
    } else {
      Parameter result = resp.getReturnValue();
      System.out.println("Call succeeded: ");
      System.out.println("Result = " + result.getValue());
    }
  }
Esempio n. 2
0
 public Object[] execute(Object... params) {
   try {
     String[] strs = (String[]) call.invoke(params);
     int statusCode = strs[0] != null && strs[0].matches("\\d") ? Integer.valueOf(strs[0]) : -1;
     if (statusCode == 0) {
       return new Object[] {HttpServletResponse.SC_OK, strs.length > 1 ? strs[1] : ""};
     } else {
       return new Object[] {statusCode, strs[1]};
     }
   } catch (RemoteException e) {
     e.printStackTrace();
     if (e.getCause() instanceof SocketTimeoutException) {
       return new Object[] {HttpServletResponse.SC_REQUEST_TIMEOUT, "Request Timeout"};
     } else if (e.getCause() instanceof ConnectException) {
       return new Object[] {HttpServletResponse.SC_NOT_FOUND, "Not Found"};
     } else {
       String message = e.getMessage() != null ? e.getMessage() : "";
       if (message.contains("(404)Not Found")
           || message.contains("could not find a target service")) {
         return new Object[] {HttpServletResponse.SC_NOT_FOUND, "Not Found"};
       } else if (message.contains("(503)Service Unavailable")) {
         return new Object[] {HttpServletResponse.SC_SERVICE_UNAVAILABLE, "Service Unavailable"};
       } else {
         return new Object[] {-1, "Unkonwn"};
       }
     }
   }
 }
  public void invoke() {
    Call call = new Call();
    call.setTargetObjectURI(d_objectUri);
    call.setMethodName(d_methodName);
    call.setEncodingStyleURI(d_encodingStyleURI);
    call.setParams(d_params);

    try {
      d_resp = call.invoke(s_url, "");
    } catch (SOAPException e) {
      System.err.println("Caught SOAPException (" + e.getFaultCode() + "): " + e.getMessage());
    }

    if (d_resp.generatedFault()) {
      outputFault(d_methodName, d_resp);
    }
  }