<html> | |
<head> | |
<meta http-equiv="content-type" content=""> | |
<title>Code Generator - Command Line Tool</title> | |
</head> | |
<body> | |
<h1>Code Generator - Command Line Tool</h1> | |
<h2>Introduction</h2> | |
<p>Just as old times there will be users who wish to use the command line | |
version of the tool. This basic tool is implemented by the WSDL2Code class | |
and just for the convenience in the java case (which would be the majority) | |
there is another WSDL2Java class. One can choose to run the main classes | |
directly or use one of the scripts to run the WSDL2Code and WSDL2Java | |
appropriately. (the scripts are found in the bin directory of the binary | |
distribution)</p> | |
<h2>Option Reference</h2> | |
<table border="1" cellpadding="0" cellspacing="0" | |
style="border-collapse: collapse" width="100%" id="AutoNumber1"> | |
<tbody> | |
<tr> | |
<td width="20%"><strong>Short Option</strong></td> | |
<td width="20%"><strong>Long Option</strong></td> | |
<td width="60%"><strong>Description</strong></td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-uri <Location of WSDL></td> | |
<td width="20%">None</td> | |
<td width="60%">WSDL file location. This should point to a WSDL file in | |
the local file system</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-o <output Location> :</td> | |
<td width="20%">--output</td> | |
<td width="60%">output file location. This is where the files would be | |
copied once the code generation is done. If this option is omitted | |
the generated files would be copied to the working directory.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-l <language></td> | |
<td width="20%">--language</td> | |
<td width="60%">Output language. Currently the code generator can | |
generate code in Java and CSharp. (CSharp support is experimental) | |
When omitted defaults to Java. | |
<p>Allowed options are</p> | |
<ul> | |
<li>java</li> | |
<li>cs</li> | |
</ul> | |
</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-p <package name></td> | |
<td width="20%">--package</td> | |
<td width="60%">The target package name. If omitted, a default package | |
(formed using the target namespace of the WSDL) will be used.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-a</td> | |
<td width="20%">--async</td> | |
<td width="60%">Generate code only for async style . when this option | |
is used the generated stubs will have only the asynchronous | |
invocation methods. Switched off by default.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-s</td> | |
<td width="20%">--sync</td> | |
<td width="60%">Generate code only for sync style . When this option is | |
used the generated stubs will have only the synchronous invocation | |
methods. Switched off by default. When used with the -a option, this | |
takes precedence.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-t</td> | |
<td width="20%">--test-case</td> | |
<td width="60%">Generates a test case. In the case of Java it would be | |
a junit test case.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-ss</td> | |
<td width="20%">--server-side</td> | |
<td width="60%">Generates server side code (i.e. skeletons). Default is | |
off</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-sd</td> | |
<td width="20%">--service-description</td> | |
<td width="60%">Generates the service descriptor (i.e. server.xml). | |
Default is off. only valid with -ss, the server side code generation | |
option</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-d</td> | |
<td width="20%">--databinding-method</td> | |
<td width="60%">Specifies the Databinding framework. valid values are | |
xmlbeans,adb and none. Default is adb.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-g</td> | |
<td width="20%">--generate-all</td> | |
<td width="60%">Genrates all the classes. This option is valid only | |
with the -ss (server side code generation) option. When on, the | |
client code (stubs) will also be generated along with the | |
skeleton.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-u</td> | |
<td width="20%">--unpack-classes</td> | |
<td width="60%">Unpack classes. This option specifies whether to unpack | |
the classes and generate separate classes for the databinders.</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-sn</td> | |
<td width="20%">--service-name</td> | |
<td width="60%">Specifies the service name to be code generated. If the | |
service name is is not specified, then the first service will be | |
picked</td> | |
<td></td> | |
</tr> | |
<tr> | |
<td width="20%">-pn</td> | |
<td width="20%">--port-name</td> | |
<td width="60%">Specifies the port name to be code generated. If the | |
port name is is not specified, then the first port (of the selected | |
service) will be picked</td> | |
<td></td> | |
</tr> | |
</tbody> | |
</table> | |
<p>Apart from these mentioned options one can pass extra option by prefixing | |
them with -E (uppercase). These extra options will be processed by the | |
extensions. The extra options that can be passed are documented separately | |
with the extensions documentation (For example with ADB)</p> | |
<h1>Code Generator - Ant Task</h1> | |
<p>The code generator also comes bundled with an Ant task. The ant task is | |
implemented by the org.apache.axis2.tool.ant.AntCodegenTask class. Following | |
are the ant task attributes.</p> | |
<h2>Ant Task Reference</h2> | |
<table border="1" cellpadding="0" cellspacing="0" | |
style="border-collapse: collapse" width="100%" id="AutoNumber2"> | |
<tbody> | |
<tr> | |
<td width="50%" height="19">wsdlfilename</td> | |
<td width="50%" height="19">WSDL file location. Maps to the uri option | |
of the command line tool</td> | |
</tr> | |
<tr> | |
<td width="50%" height="76">output</td> | |
<td width="50%" height="76">output file location. This is where the | |
files would be copied once the code generation is done. If this | |
option is omitted the generated files would be copied to the working | |
directory. . Maps to the -o option of the command line tool</td> | |
</tr> | |
<tr> | |
<td width="50%" height="171">language</td> | |
<td width="50%" height="171">Output language. Currently the code | |
generator can generate code in Java and CSharp. (CSharp support is | |
limited) When omitted defaults to Java. | |
<p>Allowed options are</p> | |
<ul> | |
<li>java</li> | |
<li>cs</li> | |
</ul> | |
<p>Maps to the -l option of the command line tool</p> | |
</td> | |
</tr> | |
<tr> | |
<td width="50%" height="57">packagename</td> | |
<td width="50%" height="57">The target package name. If omitted, a | |
default package (formed using the target namespace of the WSDL) will | |
be used. Maps to the -p option of the command line tool.</td> | |
</tr> | |
<tr> | |
<td width="50%" height="75">asynconly</td> | |
<td width="50%" height="75">Generate code only for async style . when | |
this option is used the generated stubs will have only the | |
asynchronous invocation methods. Defaults to false if omitted Only | |
true and false are applicable as values. Maps to the -a option of the | |
command line tool.</td> | |
</tr> | |
<tr> | |
<td width="50%" height="16">testcase</td> | |
<td width="50%" height="16">Generates a test case</td> | |
</tr> | |
<tr> | |
<td width="50%" height="19">synconly</td> | |
<td width="50%" height="19">Generate code only for sync style . when | |
this option is used the generated stubs will have only the | |
synchronous invocation methods. Defaults to false if omitted. Only | |
true and false are applicable as values. Maps to the -s option of the | |
command line tool.</td> | |
</tr> | |
<tr> | |
<td width="50%" height="19">serverside</td> | |
<td width="50%" height="19">Generates server side code (i.e. | |
skeletons). Only true and false are applicable as values. Default is | |
false. Maps to the -ss option of the command line tool</td> | |
</tr> | |
<tr> | |
<td width="50%" height="18">generateserverxml</td> | |
<td width="50%" height="18">Generates server side code (i.e. | |
skeletons). Only true and false are applicable as values. Default is | |
false. Maps to the -sd option of the command line tool.</td> | |
</tr> | |
<tr> | |
<td width="50%" height="18">unpackClasses</td> | |
<td width="50%" height="18">unpackes the generated classes. This forces | |
the databinding classes to be generated separately, which otherwise | |
would have been generated as inner classes.</td> | |
</tr> | |
<tr> | |
<td width="50%" height="18">serviceName</td> | |
<td width="50%" height="18">The name of the service</td> | |
</tr> | |
<tr> | |
<td width="50%" height="18">PortName</td> | |
<td width="50%" height="18">The name of the port</td> | |
</tr> | |
</tbody> | |
</table> | |
<h2>Example build file using the custom Ant task</h2> | |
<p>Following is an example ant build file that uses the custom Ant task.</p> | |
<p></p> | |
<pre><?xml version="1.0"?> | |
<project name="CodegenExample" default="main" basedir="."> | |
<target name="declare" > | |
<taskdef name="codegen" | |
classname="org.apache.axis2.tool.ant.AntCodegenTask" | |
classpath="classes"/> | |
</target> | |
<target name="main" depends="declare"> | |
<codegen | |
wsdlfilename="C:\test\wsdl\CombinedService.wsdl" | |
output="C:\" | |
serverside="true" | |
generateserverxml="true"/> | |
</target> | |
</project></pre> | |
<p>Notice the main target that uses the "codegen" task which will use the | |
org.apache.axis2.tool.ant.AntCodegenTask class and run the code generation | |
tool internally while passing the relevant arguments and do the proper | |
generation. If a user types</p> | |
<p>>ant or >ant main</p> | |
<p>it will generate the server side code and services.xml for the given WSDL | |
file(C:\test\wsdl\CombinedService.wsdl) and the generated code will be | |
written to C:\ directory.</p> | |
<p>For this Ant task to work the following jars need to be in the class | |
path.</p> | |
<ul> | |
<li>axis-*.jar (from the Axis2 distribution)</li> | |
<li>axis-wsdl4j-1.2.jar (The WSDL4J implementation jar. Bundled with the | |
Axis2 distribution)</li> | |
<li>stax-api-1.0.jar (The StAX API's that contain the | |
javax.xml.namespace.QName class. This jar may be replaced by any other | |
jar that contains the javax.xml.namespace.QName implementation. However | |
Axis2 uses this class from the stax-api-1.0.jar which comes bundled with | |
the Axis2 distribution) | |
<p></p> | |
</li> | |
</ul> | |
<h1>Invoking the Code Generator from Ant</h1> | |
<p>Since the users may find altering their ant class path a bit daunting they | |
can also follow an easier technique. The code generator main class can be | |
invoked directly through the build file.</p> | |
<p>Below is an example of a full build.xml needed to run WSDL2Java and | |
generate the Java source files, compile the sources, and build an AAR file | |
ready for deployment:</p> | |
<pre class="code"><!DOCTYPE project> | |
<project name="wsdl2java-example" default="usage" basedir="."> | |
<property name="project-name" value="wsdl2java-example"/> | |
<property file="build.properties"/> | |
<property name="build" value="build"/> | |
<property name="src" value="src"/> | |
<property name="build.classes" value="build/classes" /> | |
<path id="axis.classpath"> | |
<pathelement location="build/classes" /> | |
<fileset dir="${axis.home}/lib"> | |
<include name="**/*.jar" /> | |
</fileset> | |
<pathelement location="${build.classes}" /> | |
</path> | |
<target name="usage" description="Build file usage info (default task)"> | |
<echo message=" " /> | |
<echo message="${project-name} " /> | |
<echo message="-------------------------------------------------------" /> | |
<echo message=" " /> | |
<echo message="Available Targets:" /> | |
<echo message=" " /> | |
<echo message=" Compiling:" /> | |
<echo message=" compile - Compiles the WSDL2Java source code" /> | |
<echo message=" " /> | |
<echo message=" Compiling client:" /> | |
<echo message=" compile_client - Compiles the client source code" /> | |
<echo message=" " /> | |
<echo message=" Cleaning up:" /> | |
<echo message=" clean - Delete class files" /> | |
<echo message=" " /> | |
<echo message=" WSDL:" /> | |
<echo message=" wsdl2java - Generate source from WSDL" /> | |
<echo message=" " /> | |
<echo message=" AAR:" /> | |
<echo message=" aar - Generate an .aar for deployment into WEB-INF/services" /> | |
<echo message=" " /> | |
<echo message=" Executing:" /> | |
<echo message=" runLogin - Execute the runLogin client" /> | |
</target> | |
<target name="prepare" > | |
<mkdir dir="${build.classes}" /> | |
</target> | |
<target name="clean" > | |
<delete dir="${build}" /> | |
<delete dir="${dist}" /> | |
</target> | |
<target name="compile"> | |
<echo message="Compiling wsdl2 files"/> | |
<javac | |
srcdir="output" | |
destdir="${build.classes}" | |
deprecation="true" | |
failonerror="true" debug="true" | |
> | |
<classpath refid="axis.classpath"/> | |
</javac> | |
</target> | |
<target name="wsdl2java" depends="clean,prepare"> | |
<delete dir="output" /> | |
<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"> | |
<classpath refid="axis.classpath"/> | |
<arg value="-uri"/> | |
<arg file="wsdl/LoginEndpoint.wsdl"/> | |
<arg value="-ss"/> | |
<arg value="-sd"/> | |
<arg value="-o"/> | |
<arg file="output"/> | |
<arg value="-p"/> | |
<arg value="org.example.types"/> | |
</java> | |
<!-- Move the schema folder to classpath--> | |
<move todir="${build.classes}"> | |
<fileset dir="output"> | |
<include name="**/*schema*/**/*.class"/> | |
<include name="**/*schema*/**/*.xsb"/> | |
</fileset> | |
</move> | |
</target> | |
<target name="jar_wsdl" depends="compile"> | |
<jar jarfile="lib/axis2_example_wsdl.jar" > | |
<fileset dir="${build}/classes" /> | |
</jar> | |
</target> | |
<!-- build an .aar file for axis2 web services --> | |
<target name="aar" depends="compile"> | |
<delete dir="${build.classes}/META-INF" /> | |
<mkdir dir="${build.classes}/META-INF" /> | |
<copy todir="${build.classes}/META-INF" > | |
<fileset dir="output/service_descriptors/LoginEndpoint" > | |
<!-- axis2 web services definitions file --> | |
<include name="services.xml"/> | |
</fileset> | |
<fileset dir="wsdl" > | |
<include name="LoginEndpoint.wsdl"/> | |
</fileset> | |
</copy> | |
<jar jarfile="dist/LoginEndpoint.aar" > | |
<fileset dir="${build.classes}" /> | |
</jar> | |
</target> | |
<target name="compile_client"> | |
<echo message="Compiling client files"/> | |
<javac | |
srcdir="src" | |
destdir="${build.classes}" | |
deprecation="true" | |
failonerror="true" debug="true" | |
> | |
<classpath refid="axis.classpath"/> | |
</javac> | |
</target> | |
<target name="runLogin" depends="compile_client" description="run webLogin client"> | |
<echo message="running the webLogin client" /> | |
<java classname="org.client.LoginClient" > | |
<classpath refid="axis.classpath"/> | |
</java> | |
</target> | |
</project></pre> | |
<p>The above build.xml depends on a build.properties file which defines | |
'axis.home', such as:</p> | |
<p>axis.home=/home/username/axis2-0.94-bin/</p> | |
<p>The above build.xml example also assumes three empty directories exist, | |
'dist', 'lib', and 'src'.</p> | |
<p>Below is a validated WSDL Document following the Document/Literal Style. | |
The name of this file matches the name used in the WSDL2Java ant task above, | |
LoginEndpoint.wsdl</p> | |
<pre class="code"><?xml version="1.0" encoding="UTF-8"?> | |
<definitions name="LoginService" targetNamespace="http://login" xmlns:tns="http://login" | |
xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" | |
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://login/types"> | |
<types> | |
<schema targetNamespace="http://login/types" xmlns:tns="http://login/types" | |
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" | |
xmlns="http://www.w3.org/2001/XMLSchema"> | |
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> | |
<element name="returnWebLoginElement"> | |
<complexType> | |
<sequence> | |
<element ref="tns:soap_session_idElement"/> | |
<element ref="tns:web_user_nameElement"/> | |
</sequence> | |
</complexType> | |
</element> | |
<element name="webLoginElement"> | |
<complexType> | |
<sequence> | |
<element ref="tns:user_nameElement"/> | |
<element ref="tns:user_passwordElement"/> | |
</sequence> | |
</complexType> | |
</element> | |
<element name="user_nameElement" type="xsd:string"/> | |
<element name="user_passwordElement" type="xsd:string"/> | |
<element name="soap_session_idElement" type="xsd:string"/> | |
<element name="web_user_nameElement" type="xsd:string"/> | |
</schema></types> | |
<message name="LoginEndpoint_webLogin"> | |
<part name="parameters" element="ns2:webLoginElement"/> | |
</message> | |
<message name="LoginEndpoint_webLoginResponse"> | |
<part name="result" element="ns2:returnWebLoginElement"/> | |
</message> | |
<portType name="LoginEndpoint"> | |
<operation name="webLogin"> | |
<input message="tns:LoginEndpoint_webLogin" name="LoginEndpoint_webLogin"/> | |
<output message="tns:LoginEndpoint_webLoginResponse" name="LoginEndpoint_webLoginResponse"/> | |
</operation> | |
</portType> | |
<binding name="LoginEndpointBinding" type="tns:LoginEndpoint"> | |
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> | |
<operation name="webLogin"> | |
<soap:operation soapAction="webLogin"/> | |
<input name="LoginEndpoint_webLogin"> | |
<soap:body use="literal"/> | |
</input> | |
<output name="LoginEndpoint_webLoginResponse"> | |
<soap:body use="literal"/> | |
</output> | |
</operation> | |
</binding> | |
<service name="LoginService"> | |
<port name="LoginEndpointPort" binding="tns:LoginEndpointBinding"> | |
<soap:address location="http://localhost:8080/axis2/services/LoginEndpoint"/></port> | |
</service></definitions></pre> | |
<p>Place the above file, named LoginEndpoint.wsdl, in the directory 'wsdl' | |
below the build.xml file. Run the WSDL2Java command via the ant task defined | |
above, and there will be a directory called 'output' created. This directory | |
contains the WSDL2Java generated source. An important detail is that an | |
XMLBean class file is also generated by WSDL2Java, TypeSystemHolder.class. | |
That file is placed into build/classes by the above ant task and will be | |
needed to compile the generated sources.</p> | |
<p>The next step is to modify the generated Skeleton Java Source file - the | |
Web Service. This file as generated returns null and needs to be updated to | |
contain the business logic.</p> | |
<p>After the WSDL2Java command runs the file LoginEndpoint.wsdl, edit the | |
following file:</p> | |
<p>output/org/example/types/LoginEndpointSkeleton.java. You should see the | |
following code:</p> | |
<pre class="code">package org.example.types; | |
/** | |
* Auto generated java skeleton for the service by the Axis code generator | |
*/ | |
public class LoginEndpointSkeleton { | |
/** | |
* Auto generated method signature | |
* @param param0 | |
*/ | |
public org.example.types.databinding.login.ReturnWebLoginElementDocument webLogin | |
(org.example.types.databinding.login.WebLoginElementDocument param0 ){ | |
//Todo fill this with the necessary business logic | |
return null; | |
} | |
}</pre> | |
<p>Replace the contents of this file with the following, which uses the | |
complex types generated by WSDL2Java and the example wsdl file:</p> | |
<pre class="code">package org.example.types; | |
import org.example.types.databinding.login.ReturnWebLoginElementDocument; | |
import org.example.types.databinding.login.WebLoginElementDocument.WebLoginElement; | |
/** | |
* Auto generated java skeleton for the service by the Axis code generator | |
*/ | |
public class LoginEndpointSkeleton { | |
/** | |
* Auto generated method signature | |
* @param webLoginElementDocument changed from param0 | |
*/ | |
public org.example.types.databinding.login.ReturnWebLoginElementDocument webLogin | |
(org.example.types.databinding.login.WebLoginElementDocument webLoginElementDocument){ | |
//Todo fill this with the necessary business logic | |
System.out.println("LoginEndpointSkeleton.webLogin reached successfully!"); | |
// Get parameters passed in | |
WebLoginElement webLoginElement = webLoginElementDocument.getWebLoginElement(); | |
String userName = webLoginElement.getUserNameElement(); | |
String password = webLoginElement.getUserPasswordElement(); | |
System.out.println("LoginEndpointSkeleton.webLogin userName: " + userName); | |
System.out.println("LoginEndpointSkeleton.webLogin password: " + password); | |
// input paramaters would be used here | |
// prepare output | |
org.example.types.databinding.login.ReturnWebLoginElementDocument retDoc = | |
org.example.types.databinding.login.ReturnWebLoginElementDocument.Factory.newInstance(); | |
org.example.types.databinding.login.ReturnWebLoginElementDocument.ReturnWebLoginElement | |
retElement = | |
org.example.types.databinding.login.ReturnWebLoginElementDocument.ReturnWebLoginElement. | |
Factory.newInstance(); | |
retElement.setWebUserNameElement("joe sixpack"); | |
retElement.setSoapSessionIdElement("some_random_string"); | |
System.out.println("validate retElement: " + retElement.validate()); | |
retDoc.setReturnWebLoginElement(retElement); | |
System.out.println("validate retDoc: " + retDoc.validate()); | |
System.out.println("LoginEndpointSkeleton.webLogin returning..."); | |
return retDoc; | |
} | |
}</pre> | |
<p>The next steps assume the axis2.war has been deployed and has expanded in | |
a servlet container.</p> | |
<p>Run the 'jar_wsdl' ant task from the example build.xml, which generates a | |
jar file lib/axis2_example_wsdl.jar in the 'lib' directory under the | |
build.xml . This jar will be used to compile the client, and also will be | |
placed in the servlet container. Next, run the 'aar' ant task from the | |
example build.xml, which generates the deployable axis2 web service. Place | |
dist/LoginEndpoint.aar into axis2/WEB-INF/services . Place | |
lib/axis2_example_wsdl.jar into axis2/WEB-INF/lib . Verify the happy axis | |
page loaded the services correctly - there should be the service | |
'LoginEndpoint' with the available operation 'webLogin' displayed.</p> | |
<p>The last step is to create and run the client. In the src directory create | |
the file org.client.LoginClient.java, with the contents below:</p> | |
<pre class="code">package org.client; | |
import org.apache.axis2.AxisFault; | |
import org.example.types.LoginEndpointStub; | |
import org.example.types.databinding.login.WebLoginElementDocument; | |
import org.example.types.databinding.login.WebLoginElementDocument.WebLoginElement; | |
import org.example.types.databinding.login.ReturnWebLoginElementDocument; | |
import org.example.types.databinding.login.WebLoginElementDocument; | |
import org.example.types.databinding.login.WebLoginElementDocument.WebLoginElement; | |
/** | |
* Login. | |
* | |
*/ | |
public class LoginClient { | |
public static void main(String[] args) { | |
try { | |
System.out.println("webLogin, firing..."); | |
LoginEndpointStub stub = | |
new LoginEndpointStub(null, | |
"http://localhost:8080/axis2/services/LoginEndpoint"); | |
WebLoginElementDocument webLoginElementDocument | |
= WebLoginElementDocument.Factory.newInstance(); | |
WebLoginElement webLoginElement = | |
WebLoginElement.Factory.newInstance(); | |
webLoginElement.setUserNameElement("joe"); | |
webLoginElement.setUserPasswordElement("sixpack"); | |
webLoginElementDocument.setWebLoginElement(webLoginElement); | |
System.out.println("validate: " + webLoginElement.validate()); | |
stub.webLogin(webLoginElementDocument); | |
ReturnWebLoginElementDocument returnWebLoginElementDocument = | |
stub.webLogin(webLoginElementDocument); | |
System.out.println("Client returned"); | |
org.example.types.databinding.login.ReturnWebLoginElementDocument.ReturnWebLoginElement | |
retElement = returnWebLoginElementDocument.getReturnWebLoginElement(); | |
System.out.println("WebUserName: " + retElement.getWebUserNameElement()); | |
System.out.println("SOAPSessionId: " + retElement.getSoapSessionIdElement()); | |
System.out.println("webLogin, completed!!!"); | |
} catch (AxisFault axisFault) { | |
axisFault.printStackTrace(); | |
} catch (Exception ex) { | |
ex.printStackTrace(); | |
} | |
} | |
}</pre> | |
<p>Now run the ant task 'ant runLogin' . The following output should | |
appear:</p> | |
<pre class="code">runLogin: | |
[echo] running the webLogin client | |
[java] webLogin, firing... | |
[java] validate: true | |
[java] Client returned | |
[java] WebUserName: joe sixpack | |
[java] SOAPSessionId: some_random_string | |
[java] webLogin, completed!!!</pre> | |
<p></p> | |
<h1>Appendix</h1> | |
<ul> | |
<li>Eclipse reference - <a href="http://www.eclipse.org/"> | |
http://www.eclipse.org/</a></li> | |
<li>Custom Ant Tasks - <a | |
href="http://ant.apache.org/manual/develop.html"> | |
http://ant.apache.org/manual/develop.html</a></li> | |
</ul> | |
<p></p> | |
<p></p> | |
<p></p> | |
<p></p> | |
<p></p> | |
</body> | |
</html> |