Round2/Base

The specification document for the basic interoperability tests can be found here. The standard WSDL description listed below can be found here. You can find additional information at the SOAPBuilders Interoperability Lab

WSDL Interface

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="InteropTest"
 targetNamespace="http://soapinterop.org/"
 xmlns="http://schemas.xmlsoap.org/wsdl/"
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:s="http://soapinterop.org/xsd"
 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
 xmlns:tns="http://soapinterop.org/"
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <types>
  <schema targetNamespace="http://soapinterop.org/xsd" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="ArrayOfstring">
    <complexContent>
     <restriction base="SOAP-ENC:Array">
      <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
     </restriction>
    </complexContent>
   </complexType>
   <complexType name="ArrayOfint">
    <complexContent>
     <restriction base="SOAP-ENC:Array">
      <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
     </restriction>
    </complexContent>
   </complexType>
   <complexType name="ArrayOffloat">
    <complexContent>
     <restriction base="SOAP-ENC:Array">
      <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
     </restriction>
    </complexContent>
   </complexType>
   <complexType name="ArrayOfSOAPStruct">
    <complexContent>
     <restriction base="SOAP-ENC:Array">
      <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
     </restriction>
    </complexContent>
   </complexType>
   <complexType name="SOAPStruct">
    <all>
     <element name="varString" type="string"/>
     <element name="varInt" type="int"/>
     <element name="varFloat" type="float"/>
    </all>
   </complexType>
  </schema>
 </types>
 <message name="echoStringRequest">
  <part name="inputString" type="xsd:string"/>
 </message>
 <message name="echoStringResponse">
  <part name="return" type="xsd:string"/>
 </message>
 <message name="echoStringArrayRequest">
  <part name="inputStringArray" type="s:ArrayOfstring"/>
 </message>
 <message name="echoStringArrayResponse">
  <part name="return" type="s:ArrayOfstring"/>
 </message>
 <message name="echoIntegerRequest">
  <part name="inputInteger" type="xsd:int"/>
 </message>
 <message name="echoIntegerResponse">
  <part name="return" type="xsd:int"/>
 </message>
 <message name="echoIntegerArrayRequest">
  <part name="inputIntegerArray" type="s:ArrayOfint"/>
 </message>
 <message name="echoIntegerArrayResponse">
  <part name="return" type="s:ArrayOfint"/>
 </message>
 <message name="echoFloatRequest">
  <part name="inputFloat" type="xsd:float"/>
 </message>
 <message name="echoFloatResponse">
  <part name="return" type="xsd:float"/>
 </message>
 <message name="echoFloatArrayRequest">
  <part name="inputFloatArray" type="s:ArrayOffloat"/>
 </message>
 <message name="echoFloatArrayResponse">
  <part name="return" type="s:ArrayOffloat"/>
 </message>
 <message name="echoStructRequest">
  <part name="inputStruct" type="s:SOAPStruct"/>
 </message>
 <message name="echoStructResponse">
  <part name="return" type="s:SOAPStruct"/>
 </message>
 <message name="echoStructArrayRequest">
  <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
 </message>
 <message name="echoStructArrayResponse">
  <part name="return" type="s:ArrayOfSOAPStruct"/>
 </message>
 <message name="echoVoidRequest"/>
 <message name="echoVoidResponse"/>
 <message name="echoBase64Request">
  <part name="inputBase64" type="xsd:base64Binary"/>
 </message>
 <message name="echoBase64Response">
  <part name="return" type="xsd:base64Binary"/>
 </message>
 <message name="echoDateRequest">
  <part name="inputDate" type="xsd:dateTime"/>
 </message>
 <message name="echoDateResponse">
  <part name="return" type="xsd:dateTime"/>
 </message>
 <message name="echoHexBinaryRequest">
  <part name="inputHexBinary" type="xsd:hexBinary"/>
 </message>
 <message name="echoHexBinaryResponse">
  <part name="return" type="xsd:hexBinary"/>
 </message>
 <message name="echoDecimalRequest">
  <part name="inputDecimal" type="xsd:decimal"/>
 </message>
 <message name="echoDecimalResponse">
  <part name="return" type="xsd:decimal"/>
 </message>
 <message name="echoBooleanRequest">
  <part name="inputBoolean" type="xsd:boolean"/>
 </message>
 <message name="echoBooleanResponse">
  <part name="return" type="xsd:boolean"/>
 </message>
 <portType name="InteropTestPortType">
  <operation name="echoString" parameterOrder="inputString">
   <input message="tns:echoStringRequest"/>
   <output message="tns:echoStringResponse"/>
  </operation>
  <operation name="echoStringArray" parameterOrder="inputStringArray">
   <input message="tns:echoStringArrayRequest"/>
   <output message="tns:echoStringArrayResponse"/>
  </operation>
  <operation name="echoInteger" parameterOrder="inputInteger">
   <input message="tns:echoIntegerRequest"/>
   <output message="tns:echoIntegerResponse"/>
  </operation>
  <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
   <input message="tns:echoIntegerArrayRequest"/>
   <output message="tns:echoIntegerArrayResponse"/>
  </operation>
  <operation name="echoFloat" parameterOrder="inputFloat">
   <input message="tns:echoFloatRequest"/>
   <output message="tns:echoFloatResponse"/>
  </operation>
  <operation name="echoFloatArray" parameterOrder="inputFloatArray">
   <input message="tns:echoFloatArrayRequest"/>
   <output message="tns:echoFloatArrayResponse"/>
  </operation>
  <operation name="echoStruct" parameterOrder="inputStruct">
   <input message="tns:echoStructRequest"/>
   <output message="tns:echoStructResponse"/>
  </operation>
  <operation name="echoStructArray" parameterOrder="inputStructArray">
   <input message="tns:echoStructArrayRequest"/>
   <output message="tns:echoStructArrayResponse"/>
  </operation>
  <operation name="echoVoid">
   <input message="tns:echoVoidRequest"/>
   <output message="tns:echoVoidResponse"/>
  </operation>
  <operation name="echoBase64" parameterOrder="inputBase64">
   <input message="tns:echoBase64Request"/>
   <output message="tns:echoBase64Response"/>
  </operation>
  <operation name="echoDate" parameterOrder="inputDate">
   <input message="tns:echoDateRequest"/>
   <output message="tns:echoDateResponse"/>
  </operation>
  <operation name="echoHexBinary" parameterOrder="inputHexBinary">
   <input message="tns:echoHexBinaryRequest"/>
   <output message="tns:echoHexBinaryResponse"/>
  </operation>
  <operation name="echoDecimal" parameterOrder="inputDecimal">
   <input message="tns:echoDecimalRequest"/>
   <output message="tns:echoDecimalResponse"/>
  </operation>
  <operation name="echoBoolean" parameterOrder="inputBoolean">
   <input message="tns:echoBooleanRequest"/>
   <output message="tns:echoBooleanResponse"/>
  </operation>
 </portType>
 <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="echoString">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoStringArray">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoInteger">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoIntegerArray">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoFloat">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoFloatArray">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoStruct">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoStructArray">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoVoid">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoBase64">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoDate">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoHexBinary">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoDecimal">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
  <operation name="echoBoolean">
   <soap:operation soapAction="http://soapinterop.org/"/>
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </input>
   <output>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
     namespace="http://soapinterop.org/" use="encoded"/>
   </output>
  </operation>
 </binding>
</definitions>

Client

If you invoke wsdl2java on the above WSDL document, you can run this client to interact with the service:

package base.interoptest;
                                                                           
import javax.naming.InitialContext;
import javax.xml.rpc.Stub;
                                                                           
// list from http://www.xmethods.com/ilab:
                                                                           
// http://www.dolphinharbor.org/services/interop2001
// http://easysoap.sourceforge.net/cgi-bin/interopserver
// http://soap.4s4c.com/ilab/soap.asp
// http://interop.xmlbus.com:7002/xmlbus/container/InteropTest1999/InteropTest1999Service/InteropTest1999Port
// http://www.vbxml.com/soapworkshop/services/kafka10/services/endpoint.asp?service=ilab
// http://www.mssoapinterop.org/stk/Interop.wsdl
// http://www.mssoapinterop.org/stk/InteropTyped.wsdl
// http://www.mssoapinterop.org/asmx/simple.asmx
// http://demo.openlinksw.com:8890/Interop
// http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/SOAPBuildersInterop/1999/
// http://services.soaplite.com/interop.cgi
// http://www.soapclient.com/interop/sqldatainterop.wsdl
// http://tclsoap.sourceforge.net/cgi-bin/rpc
// http://www.whitemesa.net/interop
                                                                           
public class Client
{
    public static void main(String[] args) throws Exception
    {
    |   InitialContext ctx = new InitialContext();
    |   InteropTestService service = (InteropTestService)
    |           ctx.lookup("xmlrpc:soap:base.interoptest.InteropTestService");
    |   InteropTestPortType stub = service.getInteropTestPort();
    |                                                                      
    |   // set the end point address
    |   if (args.length > 0) 
    |       ((Stub)stub)._setProperty("javax.xml.rpc.service.endpoint.address",
    |           args[0]);
    |                                                                      
    |   echoString(stub);
    |   echoStringArray(stub);
    |   echoInteger(stub);
    |   echoIntegerArray(stub);
    |   echoFloat(stub);
    |   echoFloatArray(stub);
    |   echoStruct(stub);
    |   echoStructArray(stub);
    |   echoVoid(stub);
    |   echoBase64(stub);
    |   echoHexBinary(stub);
    |   echoDate(stub);
    |   echoDecimal(stub);
    |   echoBoolean(stub);
    }
                                                                           
    public static void echoString(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoString: ");
    |   |   boolean result = Tests.echoString(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoString:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoStringArray(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoStringArray: ");
    |   |   boolean result = Tests.echoStringArray(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoStringArray:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoInteger(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoInteger: ");
    |   |   boolean result = Tests.echoInteger(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoInteger:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoIntegerArray(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoIntegerArray: ");
    |   |   boolean result = Tests.echoIntegerArray(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoIntegerArray:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoFloat(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoFloat: ");
    |   |   boolean result = Tests.echoFloat(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoFloat:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoFloatArray(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoFloatArray: ");
    |   |   boolean result = Tests.echoFloatArray(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoFloatArray:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoStruct(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoStruct: ");
    |   |   boolean result = Tests.echoStruct(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoStruct:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoStructArray(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoStructArray: ");
    |   |   boolean result = Tests.echoStructArray(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoStructArray:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoVoid(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoVoid: ");
    |   |   boolean result = Tests.echoVoid(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoVoid:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoBase64(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoBase64: ");
    |   |   boolean result = Tests.echoBase64(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoBase64:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoHexBinary(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoBase64: ");
    |   |   boolean result = Tests.echoBase64(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoHexBinary:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoDate(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   // please note that echoDate may fail due to precision differences
    |   |   // in the on-the-wire time format
    |   |   System.out.print("echoDate: ");
    |   |   boolean result = Tests.echoDate(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoDate:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoDecimal(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoDecimal: ");
    |   |   boolean result = Tests.echoDecimal(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoDecimal:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
                                                                           
    public static void echoBoolean(InteropTestPortType stub)
    {
    |   try
    |   {
    |   |   System.out.print("echoBoolean: ");
    |   |   boolean result = Tests.echoBoolean(stub);
    |   |   System.out.println(result ? "OK" : "failed");
    |   }
    |   catch (java.lang.Exception ex)
    |   {
    |   |   java.lang.System.out.println("error invoking echoBoolean:" + 
    |   |       ex.getMessage());
    |   |   if (java.lang.System.getProperty("DEBUG") != null)
    |   |       ex.printStackTrace();
    |   }
    }
}
                                                                           

Server

An implementation of the service endpoint from the above WSDL is listed below:

// Thu Oct 03 12:38:40 PDT 2002
                                                                           
package base.interoptest;
                                                                           
import base.interoptest.holders.*;
                                                                           
import java.rmi.Remote;
import java.rmi.RemoteException;
                                                                           
import java.math.BigDecimal;
                                                                           
import java.util.Calendar;
                                                                           
import javax.servlet.ServletException;
                                                                           
public class ServerImpl extends InteropTestPortType_ServiceSkeleton
{
    public void init()
        throws ServletException
    {
    |   super.init();
    |                                                                      
    |   // Set the WSDL file property
    |   _setProperty("xmlrpc.wsdl", "InteropTest.wsdl");
    }
                                                                           
    public int[] echoIntegerArray(int[] inputIntegerArray)
        throws RemoteException
    {
    |   return inputIntegerArray;
    }
                                                                           
    public byte[] echoHexBinary(byte[] inputHexBinary)
        throws RemoteException
    {
    |   return inputHexBinary;
    }
                                                                           
    public SOAPStruct echoStruct(SOAPStruct inputStruct)
        throws RemoteException
    {
    |   return inputStruct;
    }
                                                                           
    public float echoFloat(float inputFloat)
        throws RemoteException
    {
    |   return inputFloat;
    }
                                                                           
    public java.math.BigDecimal echoDecimal(java.math.BigDecimal inputDecimal)
        throws RemoteException
    {
    |   return inputDecimal;
    }
                                                                           
    public Calendar echoDate(Calendar inputDate)
        throws RemoteException
    {
    |   return inputDate;
    }
                                                                           
    public int echoInteger(int inputInteger) throws RemoteException
    {
    |   return inputInteger;
    }
                                                                           
    public String echoString(String inputString)
        throws RemoteException
    {
    |   return inputString;
    }
                                                                           
    public byte[] echoBase64(byte[] inputBase64)
        throws RemoteException
    {
    |   return inputBase64;
    }
                                                                           
    public boolean echoBoolean(boolean inputBoolean)
        throws RemoteException
    {
    |   return inputBoolean;
    }
                                                                           
    public void echoVoid()
        throws RemoteException
    {
    }
                                                                           
    public SOAPStruct[] echoStructArray(SOAPStruct[] inputStructArray)
        throws RemoteException
    {
    |   return inputStructArray;
    }
                                                                           
    public float[] echoFloatArray(float[] inputFloatArray)
        throws RemoteException
    {
    |   return inputFloatArray;
    }
                                                                           
    public String[] echoStringArray(String[] inputStringArray)
        throws RemoteException
    {
    |   return inputStringArray;
    }
}


Copyright © 2003, 2004 Novell, Inc. All rights reserved. Copyright © 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.