blob: 5123901cff150b6ea4fadee76927a47f7019188c [file]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/xdoc/docs/userguide-introtoservices.xml at 2026-05-18
| Rendered using Apache Maven Fluido Skin 2.0.0-M11
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0" />
<title>Apache Axis2 User&apos;s Guide- Introduction to Services – Apache Axis2</title>
<link rel="stylesheet" href="../css/apache-maven-fluido-2.0.0-M11.min.css" />
<link rel="stylesheet" href="../css/site.css" />
<link rel="stylesheet" href="../css/print.css" media="print" />
<script src="../js/apache-maven-fluido-2.0.0-M11.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>
<div class="container-fluid container-fluid-top">
<header>
<div id="banner">
<div class="pull-left"><div id="bannerLeft"><h1><a href="https://www.apache.org/"><img class="class java.lang.Object" src="https://www.apache.org/images/asf_logo_wide.png" /> Apache Axis2</a></h1></div></div>
<div class="pull-right"><div id="bannerRight"><h1><a href="https://axis.apache.org/axis2/java/core/"><img class="class java.lang.Object" src="https://axis.apache.org/axis2/java/core/images/axis.jpg" /></a></h1></div></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2026-05-17<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 2.0.1<span class="divider">|</span></li>
<li><a href="https://www.apache.org" class="externalLink">Apache</a><span class="divider">/</span></li>
<li><a href="../index.html">Axis2/Java</a><span class="divider">/</span></li>
<li class="active">Apache Axis2 User&apos;s Guide- Introduction to Services</li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Axis2/Java</li>
<li><a href="../index.html">Home</a></li>
<li><a href="../download.html">Downloads</a></li>
<li><a href="javascript:void(0)"><span class="icon-chevron-down"></span>Release Notes</a>
<ul class="nav nav-list">
<li><a href="../release-notes/1.6.1.html">1.6.1</a></li>
<li><a href="../release-notes/1.6.2.html">1.6.2</a></li>
<li><a href="../release-notes/1.6.3.html">1.6.3</a></li>
<li><a href="../release-notes/1.6.4.html">1.6.4</a></li>
<li><a href="../release-notes/1.7.0.html">1.7.0</a></li>
<li><a href="../release-notes/1.7.1.html">1.7.1</a></li>
<li><a href="../release-notes/1.7.2.html">1.7.2</a></li>
<li><a href="../release-notes/1.7.3.html">1.7.3</a></li>
<li><a href="../release-notes/1.7.4.html">1.7.4</a></li>
<li><a href="../release-notes/1.7.5.html">1.7.5</a></li>
<li><a href="../release-notes/1.7.6.html">1.7.6</a></li>
<li><a href="../release-notes/1.7.7.html">1.7.7</a></li>
<li><a href="../release-notes/1.7.8.html">1.7.8</a></li>
<li><a href="../release-notes/1.7.9.html">1.7.9</a></li>
<li><a href="../release-notes/1.8.0.html">1.8.0</a></li>
<li><a href="../release-notes/1.8.1.html">1.8.1</a></li>
<li><a href="../release-notes/1.8.2.html">1.8.2</a></li>
<li><a href="../release-notes/2.0.0.html">2.0.0</a></li>
<li><a href="../release-notes/2.0.1.html">2.0.1</a></li>
</ul></li>
<li><a href="../modules/index.html">Modules</a></li>
<li><a href="../tools/index.html">Tools</a></li>
<li class="nav-header">Documentation</li>
<li><a href="../docs/toc.html">Table of Contents</a></li>
<li><a href="../docs/installationguide.html">Installation Guide</a></li>
<li><a href="../docs/quickstartguide.html">QuickStart Guide</a></li>
<li><a href="../docs/userguide.html">User Guide</a></li>
<li><a href="../docs/jaxws-guide.html">JAXWS Guide</a></li>
<li><a href="../docs/pojoguide.html">POJO Guide</a></li>
<li><a href="../docs/spring.html">Spring Guide</a></li>
<li><a href="../docs/webadminguide.html">Web Administrator&apos;s Guide</a></li>
<li><a href="../docs/migration.html">Migration Guide (from Axis1)</a></li>
<li class="nav-header">Resources</li>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="https://github.com/apache/axis-axis2-java-core" class="externalLink">Source Code</a></li>
<li class="nav-header">Get Involved</li>
<li><a href="../overview.html">Overview</a></li>
<li><a href="../mail-lists.html">Mailing Lists</a></li>
<li><a href="../release-process.html">Release Process</a></li>
<li><a href="../guidelines.html">Developer Guidelines</a></li>
<li><a href="../siteHowTo.html">Build the Site</a></li>
<li class="nav-header">Project Information</li>
<li><a href="https://github.com/apache/axis-axis2-java-core/graphs/contributors" class="externalLink">Contributors</a></li>
<li><a href="https://issues.apache.org/jira/projects/AXIS2/issues" class="externalLink">Issues</a></li>
<li class="nav-header">Apache</li>
<li><a href="https://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink">License</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink">Sponsorship</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink">Thanks</a></li>
<li><a href="https://www.apache.org/security/" class="externalLink">Security</a></li>
</ul>
</nav>
<div class="well sidebar-nav">
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<a href="https://maven.apache.org/" class="builtBy" target="_blank"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
</div>
</div>
</header>
<main id="bodyColumn" class="span10">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<a id="introservices"></a>
<section><a id="Apache_Axis2_User.27s_Guide_-_Introduction_to_Services"></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>
<section><a id="Content"></a>
<h2>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"><strong>Introduction
to Services</strong></a><br />
<ul>
<li><a href="userguide-introtoservices.html#messageexchange"><strong>Message
Exchange Patterns</strong></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>
<section><a id="Code_Listing_4.3A_Example_SOAP_Message"></a>
<h3>Code Listing 4: Example SOAP Message</h3>
<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>
<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 id="messageexchange"></a>
</section></section><section><a id="Message_Exchange_Patterns"></a>
<h2>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><strong>See Next Section</strong> - <a href="userguide-creatingclients.html#createclients">Creating
Clients</a></p>
</section>
</html> </main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>© 2004–2026
<a href="https://www.apache.org/">The Apache Software Foundation</a>
</p>
</div>
</div>
</footer>
</body>
</html>