| <!DOCTYPE html> |
| <!-- |
| | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2017-05-06 |
| | Rendered using Apache Maven Fluido Skin 1.6 |
| --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta name="Date-Revision-yyyymmdd" content="20170506" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| <title>Apache Axis2 – Generating a Web Service Client using Axis2 and JiBX</title> |
| <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" /> |
| <link rel="stylesheet" href="../css/site.css" /> |
| <link rel="stylesheet" href="../css/print.css" media="print" /> |
| <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script> |
| <meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="" /> </head> |
| <body class="topBarDisabled"> |
| <div class="container-fluid"> |
| <div id="banner"> |
| <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2"/></a></div> |
| <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div> |
| <div class="clear"><hr/></div> |
| </div> |
| |
| <div id="breadcrumbs"> |
| <ul class="breadcrumb"> |
| <li id="publishDate">Last Published: 2017-05-06<span class="divider">|</span> |
| </li> |
| <li id="projectVersion">Version: 1.7.5<span class="divider">|</span></li> |
| <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> |
| <li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li> |
| <li class="active ">Generating a Web Service Client using Axis2 and JiBX</li> |
| </ul> |
| </div> |
| <div class="row-fluid"> |
| <div id="leftColumn" class="span2"> |
| <div class="well sidebar-nav"> |
| <ul class="nav nav-list"> |
| <li class="nav-header">Axis2/Java</li> |
| <li><a href="../index.html" title="Home"><span class="none"></span>Home</a> </li> |
| <li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a> </li> |
| <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a> |
| <ul class="nav nav-list"> |
| <li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a> </li> |
| <li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a> </li> |
| <li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a> </li> |
| <li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a> </li> |
| <li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a> </li> |
| <li><a href="../release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a> </li> |
| <li><a href="../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a> </li> |
| <li><a href="../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a> </li> |
| <li><a href="../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a> </li> |
| <li><a href="../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a> </li> |
| </ul> |
| </li> |
| <li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a> </li> |
| <li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a> </li> |
| <li class="nav-header">Documentation</li> |
| <li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a> </li> |
| <li><a href="../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> |
| <li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a> </li> |
| <li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a> </li> |
| <li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a> </li> |
| <li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a> </li> |
| <li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a> </li> |
| <li><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a> </li> |
| <li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a> </li> |
| <li class="nav-header">Resources</li> |
| <li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> |
| <li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a> </li> |
| <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a> </li> |
| <li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a> </li> |
| <li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a> </li> |
| <li class="nav-header">Get Involved</li> |
| <li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a> </li> |
| <li><a href="../svn.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a> </li> |
| <li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> |
| <li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> |
| <li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a> </li> |
| <li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a> </li> |
| <li class="nav-header">Project Information</li> |
| <li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> |
| <li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> |
| <li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a> </li> |
| <li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a> </li> |
| <li class="nav-header">Apache</li> |
| <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a> </li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> |
| <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> |
| <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> |
| </ul> |
| <hr /> |
| <div id="poweredBy"> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> |
| </div> |
| </div> |
| </div> |
| <div id="bodyColumn" class="span10" > |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| |
| |
| <h1 class="title">Generating a Web Service Client using Axis2 and |
| JiBX</h1> |
| |
| <p>This document explains how to generate a Web service client |
| using Axis2 and JiBX data binding. The service has the following |
| WSDL:</p> |
| |
| <p><b>Code Listing 1: The WSDL file</b></p> |
| |
| <div> |
| <pre> |
| <?xml version="1.0" encoding="UTF-8"?> |
| <wsdl:definitions |
| xmlns:apachesoap="http://xml.apache.org/xml-soap" |
| xmlns:impl="http://apache.org/axis2/Axis2UserGuide" |
| xmlns:intf="http://apache.org/axis2/Axis2UserGuide" |
| xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" |
| xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" |
| xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
| targetNamespace="http://apache.org/axis2/Axis2UserGuide"> |
| |
| <wsdl:types> |
| <schema |
| elementFormDefault="qualified" |
| targetNamespace="http://apache.org/axis2/Axis2UserGuide" |
| xmlns="http://www.w3.org/2001/XMLSchema"> |
| |
| <!-- ELEMENTS --> |
| |
| <element name="DoInOnlyRequest"> |
| <complexType> |
| <sequence> |
| <element name="messageString" type="xsd:string"/> |
| </sequence> |
| </complexType> |
| </element> |
| |
| <element name="TwoWayOneParameterEchoRequest"> |
| <complexType> |
| <sequence> |
| <element name="echoString" type="xsd:string"/> |
| </sequence> |
| </complexType> |
| </element> |
| <element name="TwoWayOneParameterEchoResponse"> |
| <complexType> |
| <sequence> |
| <element name="echoString" type="xsd:string"/> |
| </sequence> |
| </complexType> |
| </element> |
| |
| <element name="NoParametersRequest"> |
| <complexType/> |
| </element> |
| <element name="NoParametersResponse"> |
| <complexType/> |
| </element> |
| |
| <element name="MultipleParametersAddItemRequest"> |
| <complexType> |
| <sequence> |
| <element name="itemId" type="xsd:int"/> |
| <element name="itemName" type="xsd:string"/> |
| <element name="price" type="xsd:float"/> |
| <element name="description" type="xsd:string"/> |
| </sequence> |
| </complexType> |
| </element> |
| |
| <element name="MultipleParametersAddItemResponse"> |
| <complexType> |
| <sequence> |
| <element name="itemId" type="xsd:int"/> |
| <element name="successfulAdd" type="xsd:boolean"/> |
| </sequence> |
| </complexType> |
| </element> |
| |
| </schema> |
| </wsdl:types> |
| |
| |
| <!-- MESSAGES --> |
| |
| <wsdl:message name="DoInOnlyRequestMessage"> |
| <wsdl:part name="input" element="impl:DoInOnlyRequest"/> |
| </wsdl:message> |
| |
| <wsdl:message name="TwoWayOneParameterEchoRequestMessage"> |
| <wsdl:part name="input" element="impl:TwoWayOneParameterEchoRequest"/> |
| </wsdl:message> |
| <wsdl:message name="TwoWayOneParameterEchoResponseMessage"> |
| <wsdl:part name="output" element="impl:TwoWayOneParameterEchoResponse"/> |
| </wsdl:message> |
| |
| <wsdl:message name="NoParametersRequestMessage"> |
| <wsdl:part name="input" element="impl:NoParametersRequest"/> |
| </wsdl:message> |
| <wsdl:message name="NoParametersResponseMessage"> |
| <wsdl:part name="output" element="impl:NoParametersResponse"/> |
| </wsdl:message> |
| |
| <wsdl:message name="MultipleParametersAddItemRequestMessage"> |
| <wsdl:part name="input" element="impl:MultipleParametersAddItemRequest"/> |
| </wsdl:message> |
| <wsdl:message name="MultipleParametersAddItemResponseMessage"> |
| <wsdl:part name="output" element="impl:MultipleParametersAddItemResponse"/> |
| </wsdl:message> |
| |
| |
| <!-- Port type (operations) --> |
| |
| <wsdl:portType name="Axis2UserGuidePortType"> |
| |
| <wsdl:operation name="DoInOnly" parameterOrder="input"> |
| <wsdl:input name="DoInOnlyRequestMessage" |
| message="impl:DoInOnlyRequestMessage"/> |
| </wsdl:operation> |
| |
| <wsdl:operation name="TwoWayOneParameterEcho" parameterOrder="input"> |
| <wsdl:input name="TwoWayOneParameterEchoRequestMessage" |
| message="impl:TwoWayOneParameterEchoRequestMessage"/> |
| <wsdl:output name="TwoWayOneParameterEchoResponseMessage" |
| message="impl:TwoWayOneParameterEchoResponseMessage"/> |
| </wsdl:operation> |
| |
| <wsdl:operation name="NoParameters" parameterOrder="input"> |
| <wsdl:input name="NoParametersRequestMessage" |
| message="impl:NoParametersRequestMessage"/> |
| <wsdl:output name="NoParametersResponseMessage" |
| message="impl:NoParametersResponseMessage"/> |
| </wsdl:operation> |
| |
| <wsdl:operation name="MultipleParametersAddItem" parameterOrder="input"> |
| <wsdl:input name="MultipleParametersAddItemRequestMessage" |
| message="impl:MultipleParametersAddItemRequestMessage"/> |
| <wsdl:output name="MultipleParametersAddItemResponseMessage" |
| message="impl:MultipleParametersAddItemResponseMessage"/> |
| </wsdl:operation> |
| |
| </wsdl:portType> |
| |
| |
| <!-- BINDING (bind operations) --> |
| <wsdl:binding |
| name="Axis2UserGuideSoapBinding" |
| type="impl:Axis2UserGuidePortType"> |
| <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> |
| |
| <wsdl:operation name="DoInOnly"> |
| <wsdlsoap:operation soapAction="DoInOnly"/> |
| <wsdl:input> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:input> |
| </wsdl:operation> |
| |
| <wsdl:operation name="TwoWayOneParameterEcho"> |
| <wsdlsoap:operation soapAction="TwoWayOneParameterEcho"/> |
| <wsdl:input> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:input> |
| <wsdl:output> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:output> |
| </wsdl:operation> |
| |
| <wsdl:operation name="NoParameters"> |
| <wsdlsoap:operation soapAction="NoParameters"/> |
| <wsdl:input> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:input> |
| <wsdl:output> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:output> |
| </wsdl:operation> |
| |
| <wsdl:operation name="MultipleParametersAddItem"> |
| <wsdlsoap:operation soapAction="MultipleParametersAddItem"/> |
| <wsdl:input> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:input> |
| <wsdl:output> |
| <wsdlsoap:body use="literal"/> |
| </wsdl:output> |
| </wsdl:operation> |
| </wsdl:binding> |
| |
| |
| <!-- SERVICE --> |
| |
| <wsdl:service name="Axis2UserGuideService"> |
| <wsdl:port binding="impl:Axis2UserGuideSoapBinding" |
| name="Axis2UserGuide"> |
| <wsdlsoap:address location="http://localhost:8080/axis2/services/Axis2UserGuide"/> |
| </wsdl:port> |
| </wsdl:service> |
| </wsdl:definitions> |
| </pre></div> |
| |
| <p>Note that the document defines four operations, DoInOnly, |
| NoParameters, TwoWayOneParameterEcho, and |
| MultipleParametersAddItem. Each client will include methods for |
| calling each of these operations.</p> |
| |
| <p>(You can get more information on WSDL at <a class="externalLink" href="http://www.w3.org/2002/ws/desc/">http://www.w3.org/2002/ws/desc/</a> |
| .)</p> |
| <a name="jibx" id="jibx"></a> |
| |
| <div class="section"> |
| <h2><a name="JiBX"></a>JiBX</h2> |
| |
| <p>JiBX is not part of the Apache project, so in order to use it to |
| generate your clients, you will need to do some setting up to start |
| with. To generate your client, execute the following steps:</p> |
| |
| <p><b>The short story</b>:</p> |
| |
| <ol style="list-style-type: decimal"> |
| |
| <li>Download the latest JiBX package (tested with JiBX v1.1) from |
| <a class="externalLink" href="http://sourceforge.net/projects/jibx/">http://sourceforge.net/projects/jibx/</a> |
| . Extract the zip file, and copy the JARs in the lib directory to |
| the AXIS2_HOME/lib directory. (Delete the stax-api.jar file; it's |
| superseded by the version that comes with Axis2.)</li> |
| |
| <li>Download <a class="externalLink" href="http://sourceforge.net/project/showfiles.php?group_id=69358&package_id=122897"> |
| xsd2jibx version beta2a</a> from SourceForge. Create a directory |
| called xsd2jibx in your working directory and extract the files |
| into it. This utility does not work with the latest release (v1.1) |
| of JiBX, so download <a class="externalLink" href="http://sourceforge.net/project/showfiles.php?group_id=69358&package_id=68290"> |
| jibx-1.0RC1</a> from SourceForge. Extract the files from this |
| archive and copy the *.jar files in the lib directory into the |
| xsd2jibx/lib directory.</li> |
| |
| <li>Create a schema based on the data structures of your WSDL file |
| and save it in your working directory.</li> |
| |
| <li>Make sure that only the xsd2jibx jar files are in the classpath |
| and execute the following command to create the basic binding file: |
| java -jar xsd2jibx\lib\xsd2jibx.jar Axis2UserGuide.xsd</li> |
| |
| <li>Copy the org directory to the src directory to place the |
| generated classes into the project so that the compiler will see |
| them.</li> |
| |
| <li>Remove the xsd2jibx-related *.jar files from your CLASSPATH and |
| add the Axis2 .jar files back into it. Execute the following |
| command to generate the stubs: |
| |
| <div> |
| <pre> |
| %AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d jibx -Ebindingfile org\apache\axis2\axis2userguide\binding.xml -s |
| </pre></div></li> |
| |
| <li>Create the client file in the org/apache/axis2/axis2userguide |
| directory.</li> |
| |
| <li>Copy the org directory and all its contents to the src |
| directory.</li> |
| |
| <li>Compile the first set of classes by typing:<tt>ant |
| jar.client</tt></li> |
| |
| <li>Go to the build/classes directory and run the JiBX compiler: |
| |
| <div> |
| <pre> |
| java -jar C:\apps\axis2\lib\jibx-bind.jar |
| ..\..\org\apache\axis2\axis2userguide\binding.xml |
| </pre></div></li> |
| |
| <li>Run Ant again to package the new auto-generated JiBX classes |
| into the client jar by typing: <tt>ant jar.client</tt></li> |
| |
| <li>Add the build/lib/Axis2UserGuideService-test-client.jar file to |
| the CLASSPATH and run the client by typing: |
| |
| <div> |
| <pre> |
| java org.apache.axis2.axis2userguide.Client |
| </pre></div></li> |
| </ol> |
| |
| <p><b>The long story:</b></p> |
| |
| <p>To use JiBX to generate your client, you first need to use it in |
| two different functions. You have to generate a binding file that |
| maps objects to the XML elements, and then use JiBX to generate the |
| stubs that your client will use. To generate a binding file, you'll |
| need the xsd2jibx utility, which creates a binding file from an XML |
| Schema document. Once you have the binding file, you can run JiBX |
| to create the actual object. In order to do all that you'll need to |
| have the appropriate versions of the JiBX software.</p> |
| |
| <p>Download the latest JiBX package (tested with JiBX v1.1) from |
| <a class="externalLink" href="http://sourceforge.net/projects/jibx/">http://sourceforge.net/projects/jibx/</a>. |
| Extract the zip file, and copy the JARs in the lib directory to the |
| AXIS2_HOME/lib directory. (Delete the stax-api.jar file; it's |
| superseded by the version that comes with Axis2.) These files |
| pertain to the main JiBX application.</p> |
| |
| <p>Download <a class="externalLink" href="http://sourceforge.net/project/showfiles.php?group_id=69358&package_id=122897"> |
| xsd2jibx version beta2a</a> from Sourceforge. Create a directory |
| called xsd2jibx in your working directory and extract the files |
| into it. Unfortunately, this utility does not work with the latest |
| release of JiBX, so you will need to download <a class="externalLink" href="http://sourceforge.net/project/showfiles.php?group_id=69358&package_id=68290"> |
| jibx-1.0RC1</a> from Sourceforge. Extract the files from this |
| archive and place the *.jar files in the lib directory into the |
| xsd2jibx/lib directory. This way, you can use them exclusively with |
| the xsd2jibx utility.</p> |
| |
| <p>You'll need an XML schema from which to generate the binding |
| file, which links XML elements to the Java classes. As defined in |
| the sample WSDL file, its content should be as shown in Code |
| Listing 2.</p> |
| |
| <p><b>Code Listing 2: XML Schema</b></p> |
| |
| <div> |
| <pre> |
| <?xml version="1.0" encoding="UTF-8"?> |
| <xsd:schema |
| elementFormDefault="qualified" |
| targetNamespace="http://apache.org/axis2/Axis2UserGuide" |
| xmlns="http://www.w3.org/2001/XMLSchema" |
| xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| |
| <!-- ELEMENTS --> |
| <xsd:element name="DoInOnlyRequest"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="messageString" type="xsd:string"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="TwoWayOneParameterEchoRequest"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="echoString" type="xsd:string"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="TwoWayOneParameterEchoResponse"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="echoString" type="xsd:string"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="NoParametersRequest"> |
| <xsd:complexType/> |
| </xsd:element> |
| <xsd:element name="NoParametersResponse"> |
| <xsd:complexType/> |
| </xsd:element> |
| |
| <xsd:element name="MultipleParametersAddItemRequest"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="itemId" type="xsd:int"/> |
| <xsd:element name="itemName" type="xsd:string"/> |
| <xsd:element name="price" type="xsd:float"/> |
| <xsd:element name="description" type="xsd:string"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="MultipleParametersAddItemResponse"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="itemId" type="xsd:int"/> |
| <xsd:element name="successfulAdd" type="xsd:boolean"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| </xsd:schema> |
| </pre></div> |
| |
| <p>Save the above XML schema file as Axis2UserGuide.xsd.</p> |
| |
| <p>In order to map this schema into a JiBX binding file, you'll |
| need to use the xsd2jibx utility. Clear your CLASSPATH and add only |
| the .jar files in the xsd2jibx/lib directory. Execute the following |
| command to create the basic binding file:</p> |
| |
| <div> |
| <pre> |
| java -jar xsd2jibx\lib\xsd2jibx.jar Axis2UserGuide.xsd |
| </pre></div> |
| |
| <p>This operation creates the basic class files, as well as the |
| mapping file, called binding.xml. You'll use this file to do the |
| actual WSDL-to-Java conversion.</p> |
| |
| <p>Remove the xsd2jibx .jar files from your CLASSPATH and add the |
| Axis2 .jar files back into it. Execute the command in Code Listing |
| 3 to generate the stubs.</p> |
| |
| <p><b>Code Listing 3: Generating the stubs</b></p> |
| |
| <div> |
| <pre> |
| %AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d jibx -Ebindingfile org\apache\axis2\axis2userguide\binding.xml -s |
| </pre></div> |
| |
| <p>Create the client file, Client.java, in the |
| org/apache/axis2/axis2userguide directory. Add the following code |
| in Code Listing 4.</p> |
| |
| <p><b>Code Listing 4: Creating Client.java</b></p> |
| |
| <div> |
| <pre> |
| package org.apache.axis2.axis2userguide; |
| |
| public class Client{ |
| public static void main(java.lang.String args[]){ |
| try{ |
| Axis2UserGuideServiceStub stub = |
| new Axis2UserGuideServiceStub |
| ("http://localhost:8080/axis2/services/Axis2UserGuideService"); |
| |
| doInOnly(stub); |
| twoWayOneParameterEcho(stub); |
| noParameters(stub); |
| multipleParameters(stub); |
| } catch(Exception e){ |
| e.printStackTrace(); |
| System.out.println("\n\n\n"); |
| } |
| } |
| |
| public static void doInOnly(Axis2UserGuideServiceStub stub){ |
| try{ |
| DoInOnlyRequest req = |
| new DoInOnlyRequest(); |
| |
| req.setMessageString("fire and forget it!"); |
| |
| stub.DoInOnly(req); |
| } catch(Exception e){ |
| e.printStackTrace(); |
| System.out.println("\n\n\n"); |
| } |
| } |
| |
| public static void twoWayOneParameterEcho(Axis2UserGuideServiceStub stub){ |
| try{ |
| TwoWayOneParameterEchoRequest req = |
| new TwoWayOneParameterEchoRequest(); |
| |
| req.setEchoString("echo! ... echo!"); |
| System.out.println(stub.TwoWayOneParameterEcho(req).getEchoString()); |
| } catch(Exception e){ |
| e.printStackTrace(); |
| System.out.println("\n\n\n"); |
| } |
| } |
| |
| public static void noParameters(Axis2UserGuideServiceStub stub){ |
| try{ |
| NoParametersRequest req = |
| new NoParametersRequest(); |
| |
| System.out.println(stub.NoParameters(req)); |
| } catch(Exception e){ |
| e.printStackTrace(); |
| System.out.println("\n\n\n"); |
| } |
| } |
| |
| public static void multipleParameters(Axis2UserGuideServiceStub stub){ |
| try{ |
| MultipleParametersAddItemRequest req = |
| new MultipleParametersAddItemRequest(); |
| |
| req.setPrice((float)1.99); |
| req.setItemId((int)23872983); |
| req.setDescription("Must have for cooking"); |
| req.setItemName("flour"); |
| |
| MultipleParametersAddItemResponse res = |
| stub.MultipleParametersAddItem(req); |
| |
| System.out.println(res.getItemId()); |
| System.out.println(res.getSuccessfulAdd()); |
| } catch(Exception e){ |
| e.printStackTrace(); |
| System.out.println("\n\n\n"); |
| } |
| } |
| } |
| </pre></div> |
| |
| <p>Now it's time to compile the client. For the generated files to |
| be found, they need to be in the source directory, so copy the org |
| file to the src directory.</p> |
| |
| <p>Compile the first set of classes by typing: <tt>ant |
| jar.client</tt></p> |
| |
| <p>This action compiles most of the available classes, but not |
| everything. Fortunately, it does compile the classes needed by the |
| JiBX compiler, so you can now generate the actual JiBX resources. |
| Change to the build/classes directory and run the JiBX |
| compiler:</p> |
| |
| <div> |
| <pre> |
| java -jar C:\apps\axis2\lib\jibx-bind.jar ..\..\org\apache\axis2\axis2userguide\binding.xml |
| </pre></div> |
| |
| <p>Now that you have the new files in place, re-run the Ant task to |
| generate the client: <tt>ant jar.client</tt></p> |
| |
| <p>This action adds all the appropriate files to the |
| build/lib/Axis2UserGuideService-test-client.jar file, so add that |
| .jar file to your CLASSPATH and run the client by typing: java |
| org.apache.axis2.axis2userguide.Client</p> |
| |
| </html> |
| </div> |
| </div> |
| </div> |
| <hr/> |
| <footer> |
| <div class="container-fluid"> |
| <div class="row-fluid"> |
| <p>Copyright ©2004–2017 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| All rights reserved.</p> |
| </div> |
| </div> |
| </footer> |
| </body> |
| </html> |