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; }
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; }
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; }
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.
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(); }
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(); }