blob: ee5fde56330efe3c163edacca3f541ca1cca0567 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2018-05-19
| 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="20180519" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Axis2 &#x2013; Apache Axis2 User's Guide- Introduction to Services</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: 2018-05-19<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.7.8<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- Introduction to Services</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>
<li><a href="../release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</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="introservices" id="introservices"></a>
<h1>Apache Axis2 User's Guide - Introduction to Services</h1>
<p>The term &quot;Web services&quot; can apply to a number of different ways
of sending information back and forth. However, this guide focuses
on the sending and receiving of SOAP messages. SOAP messages are
XML documents that consist of an &quot;envelope&quot; containing a &quot;payload&quot;
(see Code Listing 4).</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"><b>Introduction
to Services</b></a><br />
<ul>
<li><a href="userguide-introtoservices.html#messageexchange"><b>Message
Exchange Patterns</b></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">Samples</a></li>
<li><a href="userguide-forfurtherstudy.html">For Further
Study</a></li>
</ul>
<div class="section">
<h3><a name="Code_Listing_4:_Example_SOAP_Message"></a>Code Listing 4: Example SOAP Message</h3>
<div>
<pre>
&lt;?xml version='1.0' ?&gt;
&lt;env:Envelope xmlns:env=&quot;http://www.w3.org/2003/05/soap-envelope&quot;
xmlns:wsa=&quot;http://www.w3.org/2005/03/addressing&quot;&gt;
&lt;env:Header&gt;
&lt;wsa:MessageID&gt;
http://ws.apache.org/9C21DE32-DB42-1228-C42E-66CB101421AD
&lt;/wsa:MessageID&gt;
&lt;wsa:ReplyTo&gt;
&lt;wsa:Address&gt;http://example.com/projects/clientApp&lt;/wsa:Address&gt;
&lt;/wsa:ReplyTo&gt;
&lt;wsa:To&gt;http://example.com/axis2/publishingService&lt;/wsa:To&gt;
&lt;wsa:Action&gt;http://example.com/axis2/addDocument&lt;/wsa:Action&gt;
&lt;/env:Header&gt;
&lt;env:Body&gt;
&lt;addDocument&gt;
&lt;docTitle&gt;What I Did On My Summer Vacation&lt;/doctitle&gt;
&lt;docSubtitle&gt;Children's Essays from Accross the World&lt;/docSubtitle&gt;
&lt;docLocation&gt;contentRepos/summerVac.doc&lt;/docLocation&gt;
&lt;/addDocument&gt;
&lt;/env:Body&gt;
&lt;/env:Envelope&gt;
</pre></div>
<p>This XML document consists of the outer element or the SOAP
Envelope, and its contents. The SOAP Envelope is in the SOAP
namespace, http://www.w3.org/2003/05/soap-envelope, prefixed as
env: and contains up to two children. This envelope is a standard
format that pertains to every single SOAP message sent and received
by any SOAP Web service.</p>
<p>The contents of the Envelope consists of two parts; the first
being the SOAP headers-the contents of the env:Header element.
These headers, such as the WS-Addressing elements shown here,
provide additional information about the message and how it should
be handled. A SOAP message may carry headers relating to several
aspects of the message, or it may carry no headers at all. These
headers are typically processed by the message handlers.</p>
<p>The second and arguably the most important part of the message
is the payload, which consists of the contents of the env:Body
element. This is the actual message intended for the receiver, and
it is the information that the main application will ultimately
process.</p>
<a name="messageexchange" id="messageexchange"></a>
</div>
<div class="section">
<h2><a name="Message_Exchange_Patterns"></a>Message Exchange Patterns</h2>
<p>Although all SOAP messages carry the same structure, the ways in
which they are used can be combined into a number of different
&quot;message exchange patterns&quot;, or MEPs. The two major message
exchange patterns are:</p>
<ul>
<li>In-Out: in this MEP, the client sends a SOAP message to the
server, which processes the message and sends a response back. This
is probably the most commonly used MEP, and is useful for tasks
such as searching for information or submitting information in
situations in where acknowledgment is important.</li>
<li>In-Only: In this MEP, the client sends a message to the server
without expecting a response. You may use this MEP for activities
such as pinging a server to wake it up, reporting logging
information for which you do not need an acknowledgment and so
on.</li>
</ul>
<p>Within these two MEPs, you also have several variables to
consider:</p>
<ul>
<li>Blocking versus non-blocking: When the client sends a message,
the application may wait to receive a response before moving on, or
it may simply send a message and move on by specifying a callback
action to be completed when the response is received.</li>
<li>Number of parameters: Ultimately, a message sent from a client
to server is intended to execute a particular action. That action
may not require any parameters, or it may require one or more
parameters. These parameters must be encoded as part of the payload
of the message.</li>
</ul>
<p>Taking all these options into consideration, you can create
virtually any MEP. For example, you can create an Out-Only system
by reversing roles for the In-Only MEP. Apache Axis2 also includes
support for less prominent MEPs, such as Robust-In-Only.</p>
<p><b>See Next Section</b> - <a href="userguide-creatingclients.html#createclients">Creating
Clients</a></p>
</html>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright &copy;2004&#x2013;2018
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
</div>
</div>
</footer>
</body>
</html>