Code Listing For Axis2SampleDocLitService Service

Server:

echoString

Locate the following code segment in "Axis2SampleDocLitServiceSkeleton.java".

public org.apache.axis2.userguide.xsd.EchoStringReturnDocument 
        echoString(org.apache.axis2.userguide.xsd.EchoStringParamDocument param4 ){
        //Todo: fill this with the necessary business logic
        throw new  java.lang.UnsupportedOperationException();
   }

Then complete the code by adding the business logic as shown below:

public org.apache.axis2.userguide.xsd.EchoStringReturnDocument 
       echoString(org.apache.axis2.userguide.xsd.EchoStringParamDocument param4) throws Exception {
       //Use the factory to create the output document
       org.apache.axis2.userguide.xsd.EchoStringReturnDocument retDoc = 
           org.apache.axis2.userguide.xsd.EchoStringReturnDocument.Factory.newInstance();
      //send the string back.
      retDoc.setEchoStringReturn(param4.getEchoStringParam());
      return retDoc;
  }

echoStringArray

The code segment for echoStringArray is shown below:

public org.apache.axis2.userguide.xsd.EchoStringArrayReturnDocument 
      echoStringArray(org.apache.axis2.userguide.xsd.EchoStringArrayParamDocument param0) throws Exception {
      //Use the factory to create the output document.
     org.apache.axis2.userguide.xsd.EchoStringArrayReturnDocument retDoc = 
     org.apache.axis2.userguide.xsd.EchoStringArrayReturnDocument.Factory.newInstance();
     //Get the String array from the input parameters.
     String[] inParams = param0.getEchoStringArrayParam().getStringArray();
     org.apache.axis2.userguide.xsd.ArrayOfstringLiteral retParams =
            org.apache.axis2.userguide.xsd.ArrayOfstringLiteral.Factory.newInstance();
     //Set the input parameters to the output parameters for echoing.
     for (int i = 0; i < inParams.length; i++) {
         retParams.addString(inParams[i]);     }
     //return the output document.
    retDoc.setEchoStringArrayReturn(retParams);
    return retDoc;
   }

echoStruct

The code segment for echoStruct is shown below:

  public org.apache.axis2.userguide.xsd.EchoStructReturnDocument 
        echoStruct(org.apache.axis2.userguide.xsd.EchoStructParamDocument param2) throws Exception {
        //Use the factory to create the output document.
        org.apache.axis2.userguide.xsd.EchoStructReturnDocument retDoc =
        org.apache.axis2.userguide.xsd.EchoStructReturnDocument.Factory.newInstance();
        //Get the SOAPStrcut from the incoming parameters
        org.apache.axis2.userguide.xsd.SOAPStruct inStruct = param2.getEchoStructParam();
        //Struct for the sending back
        org.apache.axis2.userguide.xsd.SOAPStruct outStruct =
                org.apache.axis2.userguide.xsd.SOAPStruct.Factory.newInstance();
        //Fill the outgoing struct
        outStruct.setVarFloat(inStruct.getVarFloat());
        outStruct.setVarInt(inStruct.getVarInt());
        outStruct.setVarString(inStruct.getVarString());
        //Set the outgoing document.
        retDoc.setEchoStructReturn(outStruct);
        return retDoc;
    }

Client:

Client for echoString Operation

The following code fragment shows the necessary code for utilizing the echoString operation of the Axis2SampleDocLitService that we have already deployed. The code is very simple to understand and the explanations are in the form of comments.

     try {
                      org.apache.axis2.userguide.Axis2SampleDocLitServiceStub stub 
                        = new org.apache.axis2.userguide.Axis2SampleDocLitServiceStub(null,
                           "http://localhost:8080/axis2/services/Axis2SampleDocLitService");
                      //Create the request document to be sent.
                      org.apache.axis2.userguide.xsd.EchoStringParamDocument reqDoc =
                          org.apache.axis2.userguide.xsd.EchoStringParamDocument.Factory.newInstance();
                      reqDoc.setEchoStringParam("Axis2 Echo");
                      //invokes the Web service.
                      org.apache.axis2.userguide.xsd.EchoStringReturnDocument resDoc = 
                                        stub.echoString(reqDoc);
                      System.out.println(resDoc.getEchoStringReturn());
                      } catch (java.rmi.RemoteException e) {
                       e.printStackTrace();
                      }

Similarly the following code fragments show client side code for echoStringArray operation and echoStruct operation respectively.

Client for echoStringArray Operation

      try {
                       //Create the stub by passing the AXIS_HOME and target EPR.
                       //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
                       org.apache.axis2.userguide.Axis2SampleDocLitServiceStub stub = 
                                    new org.apache.axis2.userguide.Axis2SampleDocLitServiceStub(null,
                                    "http://localhost:8080/axis2/services/Axis2SampleDocLitService");
                       //Create the request document to be sent.
                       org.apache.axis2.userguide.xsd.EchoStringArrayParamDocument reqDoc = 
                          org.apache.axis2.userguide.xsd.EchoStringArrayParamDocument.Factory.newInstance();
                      org.apache.axis2.userguide.xsd.ArrayOfstringLiteral paramArray = 
                           org.apache.axis2.userguide.xsd.ArrayOfstringLiteral.Factory.newInstance();
                      paramArray.addString("Axis2");
                      paramArray.addString("Echo");
                      reqDoc.setEchoStringArrayParam(paramArray);
                      org.apache.axis2.userguide.xsd.EchoStringArrayReturnDocument resDoc = 
                      stub.echoStringArray(reqDoc); 
                      //Get the response params
                      String[] resParams = resDoc.getEchoStringArrayReturn().getStringArray();
                      for (int i = 0; i < resParams.length; i++) {
                          System.out.println(resParams[i]);
                      }
                    } catch (java.rmi.RemoteException e) {
                       e.printStackTrace(); 
                    }
               

Client for echoStruct Operation

try {
                //Create the stub by passing the AXIS_HOME and target EPR.
                //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
                org.apache.axis2.userguide.Axis2SampleDocLitServiceStub stub =
                        new org.apache.axis2.userguide.Axis2SampleDocLitServiceStub(null,
                        "http://localhost:8080/axis2/services/Axis2SampleDocLitService");
                          //Create the request Document
                        org.apache.axis2.userguide.xsd.EchoStructParamDocument reqDoc =
                          org.apache.axis2.userguide.xsd.EchoStructParamDocument.Factory.newInstance();
                         //Create the complex type
                        org.apache.axis2.userguide.xsd.SOAPStruct reqStruct =
                        org.apache.axis2.userguide.xsd.SOAPStruct.Factory.newInstance();
                        reqStruct.setVarFloat(100.50F);
                        reqStruct.setVarInt(10);
                        reqStruct.setVarString("High");
                        reqDoc.setEchoStructParam(reqStruct);
                        //Service invocation
                        org.apache.axis2.userguide.xsd.EchoStructReturnDocument resDoc = 
                         stub.echoStruct(reqDoc);
                       org.apache.axis2.userguide.xsd.SOAPStruct resStruct = 
                          resDoc.getEchoStructReturn();
                       System.out.println("floot Value :" + resStruct.getVarFloat());
                       System.out.println("int Value :" + resStruct.getVarInt());
                       System.out.println("String Value :" + resStruct.getVarString());
                     } catch (java.rmi.RemoteException e) {
                        e.printStackTrace();
                    }