import java.io.*;
import java.net.*;
import java.util.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;

public class Berechnung {
  public static void main (String[] args) throws Exception {

    URL url = new URL ("http://localhost:8080/bpws4j/soaprpcrouter");

    Integer integer1 = new Integer(1);
    Integer integer2 = new Integer(5);
    Integer integer3 = new Integer(10);
    Integer integer4 = new Integer(-3);

    // Build the call.
    Call call = new Call();
    call.setTargetObjectURI("urn:berechnung#berechnungBP#caller#urn:berechnung#BerechnungPT");
    call.setMethodName ("berechne");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    Vector params = new Vector();

    /**
    params.addElement(new Parameter("var1", Integer.class, integer1, null));
    params.addElement(new Parameter("var2", Integer.class, integer2, null));
    params.addElement(new Parameter("var3", Integer.class, integer3, null));
    params.addElement(new Parameter("var4", Integer.class, integer4, null));
    ***/

    params.addElement(new Parameter("a", Integer.class, integer1, null));
    params.addElement(new Parameter("b", Integer.class, integer2, null));
    params.addElement(new Parameter("c", Integer.class, integer3, null));
    params.addElement(new Parameter("d", Integer.class, integer4, 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 (/* router URL */ url, /* actionURI */ "" );

    // 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 ());
      System.out.println ("  Fault        = " + fault);
    } else {
      Parameter result = resp.getReturnValue ();
      System.out.println ("Das Ergebnis ist: "+result.getValue ());
    }
  }
}

