Web Services

The javaxt.webservices package is used to parse WSDLs and dynamically execute web methods using SOAP over HTTP. This is a really nice alternative to creating proxy classes which tend to clutter up your code.

WSDL Parser

Here's a simple example of how to iterate through all the web methods found in a WSDL.
//Parse WSDL
  String url = "http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL";
  javaxt.webservices.WSDL wsdl = new javaxt.webservices.WSDL(url);

//Iterate Through the Services
  for (javaxt.webservices.Service service : wsdl.getServices()){

    //Print service name
      System.out.println("------------------------");
      System.out.println(service.getName() + " Service");
      System.out.println("------------------------");

    //Print web methods
      for (javaxt.webservices.Method method : service.getMethods()){
          System.out.println(" + " + method.getName());

        //Print parameters
          javaxt.webservices.Parameters parameters = method.getParameters();
          if (parameters!=null){
              for (javaxt.webservices.Parameter parameter : parameters.getArray()){
                  System.out.println("  - " + parameter.getName() + " (" + parameter.getType() + ")");
              }
          }
      }
  }

Dynamically Execute Web Methods

Here's a simple example of how to execute a web method. Note that there are no proxy classes or autogenerated code required to execute this web service request.

      //Parse WSDL
        String url = "http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL";
        javaxt.webservices.WSDL wsdl = new javaxt.webservices.WSDL(url);

      //Set Parameters
        javaxt.webservices.Service service = wsdl.getServices()[0];
        javaxt.webservices.Method method = service.getMethod("CountryName");
        javaxt.webservices.Parameters parameters = method.getParameters();
        parameters.setValue("sCountryISOCode", "US");

      //Execute Web Method and Print Response
        javaxt.webservices.SoapRequest soap = new javaxt.webservices.SoapRequest(service, method, parameters);
        try{
            String countryName = soap.getResponse().toString();
            System.out.println(countryName);
        }
        catch(Exception e){
            e.printStackTrace();
        }