<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2017-11-22 
 | 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="20171122" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Apache Axis2 User's Guide- Creating Clients</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-11-22<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.7<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 ">Apache Axis2 User's Guide- Creating Clients</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>
    <li><a href="../release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a>  </li>
    <li><a href="../release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</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 lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<a name="createclients" id="createclients"></a>

<h1>Apache Axis2 User's Guide - Creating Clients</h1>

<p>When it comes to creating a Web service client, you can do it
manually (see <a href="userguide-buildingservices.html">Building
Services</a>), but in most cases you have a Web Service Description
Language (WSDL) definition that describes the messages clients
should send and expect to receive. Axis2 provides several ways to
use this definition to automatically generate a client.</p>

<div class="section">
<h2><a name="Content"></a>Content</h2>

<ul>

<li><a href="userguide.html#intro">Introducing Axis2</a><br />

<ul>

<li><a href="userguide.html#whatis">What is Axis2?</a></li>

<li><a href="userguide.html#underhood">What's Under the
hood?</a></li>

<li><a href="userguide.html#handlessoap">How Axis2 Handles SOAP
Messages</a></li>

<li><a href="userguide.html#distributions">Axis2
Distributions</a></li>

<li><a href="userguide.html#sbd">The Axis2 Standard Binary
Distribution</a></li>

<li><a href="userguide.html#hierarchy">Axis2.war Directory
hierarchy</a></li>

<li><a href="userguide.html#docs">Axis2 Documents
Distribution</a></li>

<li><a href="userguide.html#clients">Axis2 and Clients</a></li>
</ul>
</li>

<li><a href="userguide-installingtesting.html#installingtesting">Installing and
Testing Client Code</a></li>

<li><a href="userguide-introtoservices.html#introservices">Introduction to
Services</a><br />

<ul>

<li><a href="userguide-introtoservices.html#messageexchange">Message Exchange
Patterns</a></li>
</ul>
</li>

<li><a href="userguide-creatingclients.html#createclients"><b>Creating
Clients</b></a><br />

<ul>

<li><a href="userguide-creatingclients.html#choosingclient"><b>Choosing a
Client Generation Method</b></a></li>

<li><a href="userguide-creatingclients.html#generating"><b>Generating
Clients</b></a></li>

<li><a href="userguide-creatingclients.html#adb"><b>Axis Data
Binding (ADB)</b></a></li>
</ul>
</li>

<li><a href="userguide-buildingservices.html#buildservices">Building
Services</a><br />

<ul>

<li><a href="userguide-buildingservices.html#getcomfortable">Getting
Comfortable with Available Options</a></li>

<li><a href="userguide-buildingservices.html#createscratch">Creating a service
from Scratch</a></li>

<li><a href="userguide-buildingservices.html#deploypojo">Deploying
Plain Old Java Objects</a></li>

<li><a href="userguide-buildingservices.html#deployrun">Deploying
and Running an Axis2 Service Created from WSDL</a></li>
</ul>
</li>

<li><a href="userguide-samples.html">Samples</a></li>

<li><a href="userguide-forfurtherstudy.html">For Further
Study</a></li>
</ul>
<a name="choosingclient" id="choosingclient"></a>

<div class="section">
<h2><a name="Choosing_a_Client_Generation_Method"></a>Choosing a Client Generation Method</h2>

<p>Axis2 gives you several options when it comes to mapping WSDL to
objects when generating clients. Three of these options are Axis2
DataBinding Framework, XMLBeans, and JiBX databinding. All of these
methods involve using databinding to create Java objects out of the
XML structures used by the service, and each has its pros and cons.
You can also generate XML in-out stubs that are not based on
databinding.</p>

<p>Axis2 Databinding Framework (ADB): ADB is probably the simplest
method of generating an Axis2 client. In most cases, all of the
pertinent classes are created as inner classes of a main stub
class. ADB is very easy to use, but it does have limitations. It is
not meant to be a full schema binding application, and has
difficulty with structures such as XML Schema element extensions
and restrictions.</p>

<p>XMLBeans: Unlike ADB, XMLBeans is a fully functional schema
compiler, so it doesn't carry the same limitations as ADB. It is,
however, a bit more complicated to use than ADB. It generates a
huge number of files, and the programming model, while being
certainly usable, is not as straightforward as ADB.</p>

<p>JiBX: JiBX is a complete databinding framework that actually
provides not only WSDL-to-Java conversion, as covered in this
document, but also Java-to-XML conversion. In some ways, JiBX
provides the best of both worlds. JiBX is extremely flexible,
enabling you to choose the classes that represent your entities,
but it can be complicated to set up. On the other hand, once it is
set up, actually using the generated code is as easy as using
ADB.</p>

<p>In the end, for simple structures, ADB will likely be enough for
you. If, on the other hand you need more power or flexibility,
whether you choose XMLBeans or JiBX depends on how much power or
flexibility you need and your tolerance for complexity.</p>
<a name="generating" id="generating"></a>

<div class="section">
<h2><a name="Generating_Clients"></a>Generating Clients</h2>

<p>The process for generating and using a client varies slightly
depending on the method of generation you choose. In all three
cases in this document, clients are generated from the same WSDL
file (see <a href="userguide-codelisting5.html">Code Listing
5</a>).</p>

<p>Note that the document defines four operations, DoInOnly,
NoParameters, TwoWayOneParameterEcho, and
MultipleParametersAddItem. Each of the clients 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="adb" id="adb"></a>

<div class="section">
<h2><a name="Axis_Data_Binding_ADB"></a>Axis Data Binding (ADB)</h2>

<p>To create a client using ADB, execute the following steps:</p>

<p><b>The short story:</b></p>

<ol style="list-style-type: decimal">

<li>
<a href="../download.cgi">Download</a> and unpack the Apache Axis2 Standard
Distribution, if you have not done it already.</li>

<li>Create the client stub with the following command (Assuming that you have Axis2UserGuide.wsdl file on your current working directory):

<div>
<pre>
%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d adb -s
</pre></div></li>

<li>Create the client (for example, Client.java), a Java
application that uses the generated stub, and save it in the
org/apache/axis2/axis2userguide directory.</li>

<li>Build the client by typing: ant jar.client.</li>

<li>Assuming you have a corresponding service, run the client by
adding the generated Axis2UserGuideService-test-client.jar file
located in build/lib to the classpath and type: java
org.apache.axis2.axis2userguide.Client</li>
</ol>

<p><b>The long story:</b></p>

<p>If you have not done it already, <a href="../download.cgi">
download</a> and unpack the Apache Axis2 Standard Distribution. The
Axis2 WAR Distribution does not include the necessary utilities for
generating code, such as WSDL2Java.</p>

<p>In the ADB method of generating clients, all the functionalities
of the services are contained in a single class called a stub. The
stub contains inner classes corresponding to all the necessary
objects defined in the WSDL file, such as, in the case of this
WSDL, DoInOnlyRequestMessage. Once you have the stub, you will be
able to create a client by simply referring to these classes and
their methods. To generate the client, issue the following command
in Code Listing 6.</p>

<div class="section">
<h3><a name="Code_Listing_6_-_Generating_the_Client"></a><b>Code Listing 6 - Generating the Client</b></h3>

<div>
<pre>
%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d adb -s
</pre></div>

<p>This command analyzes the WSDL file and creates the stub in the
package org.apache.axis2.axis2userguide. The options specify that
you want the ADB data binding method (-d), and synchronous or
blocking, methods (-s). In other words, when the client makes an
In-Out call to the service, it will wait for a response before
continuing.</p>

<p>Once you run this command, you will see two new items in the
directory. The first is the build.xml file, which contains the
instructions for <a class="externalLink" href="http://ant.apache.org/">Ant</a> to
compile the generated classes. The second is the src directory,
which contains the actual Axis2UserGuideServiceStub.java file. If
you open this file, you will see a collection of inner classes for
each of the items in the WSDL file. You'll also see a number of
calls to the Axis2 client API, including those that use AXIOM to
build and analyze the incoming and outgoing messages.</p>

<p>Now you need a client to make use of this code. To create a
client, create a new class and save it as Client.java in the
org/apache/axis2/axis2userguide directory. It should contain the
following code in <a href="userguide-codelisting7.html">Code
Listing 7</a>.</p>

<p>Note that using the service is simply a matter of creating and
populating the appropriate type of request using the names defined
in the WSDL file, and then using the stub to actually send the
request to the appropriate method. For example, to call the
DoInOnly operation, you create a DoInOnlyRequest, use its
setMessageString() method to set the contents of its messageString
element, and pass it as an argument to stub.DoInOnly().</p>

<p>To build the client, type: ant jar.client</p>

<p>This action creates two new directories, build and test. The
test directory will be empty, but the build directory contains two
versions of the client. The first version, in the lib directory, is
a .jar file that contains the client class and the stub. The
second, in the classes directory, is just raw classes.</p>

<p>Make sure all the jar files in the Axis2 lib directory are in
the classpath.</p>

<p>If you have a service corresponding to this client you can run
the client by adding the jar file to your classpath and typing:
java org.apache.axis2.axis2userguide.Client</p>

<p>(If you don't have such a service,, refer to the <a href="userguide-buildingservices.html">Building services</a>
document.)</p>

<p>You should see the response in the console window of your
servlet container. It should look something like this:</p>

<p><img src="images/fig03.jpg" alt="Response in a console window of your servlet container" /><br /></p>

<p>ADB is not your only option for generating Web service clients.
Other options include <a href="userguide-creatingclients-xmlbeans.html">XmlBeans</a>, <a href="userguide-creatingclients-jibx.html">JiBX</a> and
JAXBRI.</p>

<p><b>See the Next Section</b> -<a href="userguide-buildingservices.html#buildservices">Building
Services</a></p>
</div>
</html>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2017
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>