<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Apr 17, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache Axis2 - 


Apache Axis2 User's Guide- The Samples</title>
    <style type="text/css" media="all">
      @import url("../css/maven-base.css");
      @import url("../css/maven-theme.css");
      @import url("../css/site.css");
    </style>
    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20120417" />
    <meta http-equiv="Content-Language" content="en" />
        <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="composite">
    <div id="banner">
                  <a href="http://www.apache.org/" id="bannerLeft">
                                        <img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2" />
                </a>
                        <a href="" id="bannerRight">
                                                <img src="../images/axis.jpg" alt="Apache Axis2" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
        
                <div class="xleft">
        <span id="publishDate">Last Published: 2012-04-17</span>
                  &nbsp;| <span id="projectVersion">Version: 1.6.2</span>
                      </div>
            <div class="xright">                    <a href="../index.html" title="Axis2/Java">Axis2/Java</a>
            |
                        <a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a>
              
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
        
                                <h5>Axis2/Java</h5>
                  <ul>
                  <li class="none">
                          <a href="../index.html" title="Home">Home</a>
            </li>
          </ul>
                       <h5>Downloads</h5>
                  <ul>
                  <li class="none">
                          <a href="../download.cgi" title="Releases">Releases</a>
            </li>
                  <li class="none">
                          <a href="../modules/index.html" title="Modules">Modules</a>
            </li>
                  <li class="none">
                          <a href="../tools/index.html" title="Tools">Tools</a>
            </li>
          </ul>
                       <h5>Documentation</h5>
                  <ul>
                  <li class="none">
                          <a href="../docs/toc.html" title="Table of Contents">Table of Contents</a>
            </li>
                  <li class="none">
                          <a href="../docs/installationguide.html" title="Installation Guide">Installation Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/quickstartguide.html" title="QuickStart Guide">QuickStart Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/userguide.html" title="User Guide">User Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/jaxws-guide.html" title="JAXWS Guide">JAXWS Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/pojoguide.html" title="POJO Guide">POJO Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/spring.html" title="Spring Guide">Spring Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/webadminguide.html" title="Web Administrator's Guide">Web Administrator's Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/migration.html" title="Migration Guide (from Axis1)">Migration Guide (from Axis1)</a>
            </li>
          </ul>
                       <h5>Resources</h5>
                  <ul>
                  <li class="none">
                          <a href="../faq.html" title="FAQ">FAQ</a>
            </li>
                  <li class="none">
                          <a href="../articles.html" title="Articles">Articles</a>
            </li>
                  <li class="none">
                          <a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki">Wiki</a>
            </li>
                  <li class="none">
                          <a href="../refLib.html" title="Reference Library">Reference Library</a>
            </li>
                  <li class="none">
                          <a href="../api/index.html" title="Online Java Docs">Online Java Docs</a>
            </li>
          </ul>
                       <h5>Get Involved</h5>
                  <ul>
                  <li class="none">
                          <a href="../overview.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="../svn.html" title="Checkout the Source">Checkout the Source</a>
            </li>
                  <li class="none">
                          <a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="../release-process.html" title="Release Process">Release Process</a>
            </li>
                  <li class="none">
                          <a href="../guidelines.html" title="Developer Guidelines">Developer Guidelines</a>
            </li>
                  <li class="none">
                          <a href="../siteHowTo.html" title="Build the Site">Build the Site</a>
            </li>
          </ul>
                       <h5>Project Information</h5>
                  <ul>
                  <li class="none">
                          <a href="../team-list.html" title="Project Team">Project Team</a>
            </li>
                  <li class="none">
                          <a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                  <li class="none">
                          <a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code">Source Code</a>
            </li>
                  <li class="none">
                          <a href="../thanks.html" title="Acknowledgements">Acknowledgements</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">License</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">Security</a>
            </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
      </a>
                   
        
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!-- ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License. --><html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<a name="samples" id="samples"></a>
<h1>Apache Axis2 User's Guide - The Samples</h1>
<p>The Apache Axis2 Standard Distribution provides a number of
samples you can use as a guide for implementing specific features
and capabilities. These services are listed in this section.</p>
<div class="section"><h2>Content<a name="Content"></a></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">Creating
Clients</a><br />
<ul>
<li><a href="userguide-creatingclients.html#choosingclient">Choosing a Client
Generation Method</a></li>
<li><a href="userguide-creatingclients.html#generating">Generating
Clients</a></li>
<li><a href="userguide-creatingclients.html#adb">Axis Data Binding
(ADB)</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 the 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"><b>Samples</b></a>
<ul>
<li><a href="userguide-samples.html#clients"><b>Clients</b></a></li>
<li><a href="userguide-samples.html#services"><b>Services</b></a></li>
<li><a href="userguide-samples.html#wsdl"><b>Sample WSDL
files</b></a></li>
<li><a href="userguide-samples.html#others"><b>Other
Samples</b></a></li>
</ul>
</li>
<li><a href="userguide-forfurtherstudy.html">For Further
Study</a></li>
</ul>
<a name="clients" id="clients"></a>
<div class="section"><h2>Clients (in AXIS2_HOME/samples/userguide/src/clients):<a name="Clients_in_AXIS2_HOMEsamplesuserguidesrcclients:"></a></h2>
<p><b>EchoBlockingClient.java</b>: A basic example of the
send/receive MEP.</p>
<p><b>EchoBlockingDualClient.java</b>: Specifies that the
return message should be sent over a different channel than the
request message.</p>
<p><b>EchoBlockingWsaBasedClient.java</b>: Provides an
example of using the capabilities of WS-Addressing action
mapping.</p>
<p><b>EchoNonBlockingClient.java</b>: Demonstrates an
asynchronous request using Callbacks.</p>
<p><b>EchoNonBlockingDualClient.java</b>: Similar to the
above, but uses a separate listener for the response.</p>
<p><b>ClientForWebServiceWithModule.java</b>: Simply
makes a call to a service with engaged modules.</p>
<p><b>ClientSideModuleEngagement.java</b>: Demonstrates
the use of modules on the client side, in addition to the server
side.</p>
<p><b>MailClient.java</b>: Demonstrates the use of the
Robust In-Only MEP.</p>
<p><b>PingClient.java</b>: A simple &quot;fire and forget&quot;
client.</p>
<p><b>RESTClient.java</b>: Demonstrates the ability to
request a REST response rather than a SOAP response. Also
demonstrates setting arbitrary properties on the Options
object.</p>
<p><b>TCPClient.java</b>: Provides an example of using
the TCP transport rather than HTTP.</p>
<a name="services" id="services"></a>
<div class="section"><h2>Services (in AXIS2_HOME/samples/userguide):<a name="Services_in_AXIS2_HOMEsamplesuserguide:"></a></h2>
<p><b>groovyService.aar</b>: Demonstrates how to use
Groovy classes in the processing of SOAP messages.</p>
<p><b>MyService.aar</b>: Provides simple &quot;echo&quot; and
&quot;ping&quot; operations.</p>
<p><b>MyServiceWithModule.aar</b>: Same as above, but
demonstrates how to engage a module.</p>
<p><b>WsaMappingService.aar</b>: Demonstrates the mapping
of WS-Addressing actions.</p>
<a name="wsdl" id="wsdl"></a>
<div class="section"><h2>Sample WSDL files (in AXIS2_HOME/samples):<a name="Sample_WSDL_files_in_AXIS2_HOMEsamples:"></a></h2>
<p><b>Axis2SampleDocLit.wsdl</b>: Demonstrates the use of
the Document/Literal WSDL pattern, rather than RPC.</p>
<p><b>perf.wsdl</b>: Demonstrates the use of array values
as input values.</p>
<a name="others" id="others"></a>
<div class="section"><h2>Other samples<a name="Other_samples"></a></h2>
<div class="section"><h3>In AXIS2_HOME/samples Directory:<a name="In_AXIS2_HOMEsamples_Directory:"></a></h3>
<!-- <p><strong>amazonqs</strong>: Uses the Amazon Queue Service to store and
retrieve String objects.</p> -->
<p><b>faulthandling</b>: Demonstrates the use of SOAP
faults and their definitions in WSDL enabling exception processing
in the client.</p>
<!-- <p><strong>googlesearch</strong>: Creates a GUI-based application making use
of Google Web Services asynchronously.</p> -->
<p><b>googleSpellcheck</b>: Demonstrates both synchronous
and non-synchronous use of the Google Web Service in a GUI.</p>
<p><b>mtom</b>: Demonstrates the use of MTOM and SOAP
with Attachments to send binary files to a service.</p>
<p><b>saopwithattachments</b>: Demonstrates the
capabilities and power of SOAP with Attachment support and the
Attachment API of Axis2.</p>
<p><b>pojo</b>: Example of a POJO (Plain Old Java Object)
Web service. It shows how to expose the methods of a Java class as
a Web service using Apache Aixs2.</p>
<p><b>servicelifecycle</b>: Demonstrates the usage of a
service life cycle and a bit of session management. The main idea
is to show where and how to use the service life cycle interface
and session related methods.</p>
<!-- <p><strong>sgccalculator</strong>: A simple calculator that demonstrates the
use of Service Groups.</p> -->
<p><b>databinding</b>: Demonstrates how to use WSDL2Java
generated code with Castor.</p>
<p><b>version</b>: A very simple service that simply
outputs the Apache Axis2 version.</p>
<p><b>yahoorestearch</b>: A complete example of the use
of a REST service rather than a SOAP service.</p>
</div><div class="section"><h3>External:<a name="External:"></a></h3>
<p><b>FlickrClient</b> : Demonstrates code generation
capabilities for WSDL 2.0. The FlickrService.wsdl describes
services offered by flickr in terms of WSDL 2.0. It also
demonstrates how a restful service can be described using the
HTTPBinding of wsdl 2.0.</p>
<p>Extract the <a class="externalLink" href="http://dist.wso2.org/products/wsas/java/nightly-build/">WSO2 WSAS
for Java nightly build distribution</a> and you will find the
sample at WSAS_HOME/samples/FlickrClient or checkout sample from
SVN:
http://wso2.org/repos/wso2/trunk/wsas/java/modules/samples/FlickrClient</p>
<p><b>See Next Section</b> - <a href="userguide-forfurtherstudy.html">For Further Study</a></p>
</div>
</html>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2004-2012
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
