axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chinth...@apache.org
Subject svn commit: r154991 - in webservices/axis/trunk/java: maven.xml xdocs/ClientAPI.html xdocs/OMTutorial.html xdocs/userguide.html
Date Wed, 23 Feb 2005 09:30:22 GMT
Author: chinthaka
Date: Wed Feb 23 01:30:20 2005
New Revision: 154991

URL: http://svn.apache.org/viewcvs?view=rev&rev=154991
Log: (empty)


Modified:
    webservices/axis/trunk/java/maven.xml
    webservices/axis/trunk/java/xdocs/ClientAPI.html
    webservices/axis/trunk/java/xdocs/OMTutorial.html
    webservices/axis/trunk/java/xdocs/userguide.html

Modified: webservices/axis/trunk/java/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/maven.xml?view=diff&r1=154990&r2=154991
==============================================================================
--- webservices/axis/trunk/java/maven.xml (original)
+++ webservices/axis/trunk/java/maven.xml Wed Feb 23 01:30:20 2005
@@ -228,6 +228,7 @@
     <attainGoal name="dist-bin"/>
     <attainGoal name="war"/>
     <attainGoal name="javadoc-gen"/>
+    <attainGoal name="pdf"/>
     <copy todir="target/docs/api">
 		<fileset dir="target/apidocs" />
 	</copy>
@@ -235,6 +236,8 @@
 	<copy file="target/axis2-src-M1.zip" tofile="target/docs/dist/axis2-src-M1.zip"/>
 	<copy file="target/axis2-bin-M1.zip" tofile="target/docs/dist/axis2-bin-M1.zip"/>
 	<copy file="target/axis2.war" tofile="target/docs/dist/axis2.war"/>
+	<copy file="target/pdf/axis2.pdf" tofile="target/docs/axis2.pdf"/>
+	<ant:delete dir="target/pdf"/>
   </preGoal>
   </project>
 

Modified: webservices/axis/trunk/java/xdocs/ClientAPI.html
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/ClientAPI.html?view=diff&r1=154990&r2=154991
==============================================================================
--- webservices/axis/trunk/java/xdocs/ClientAPI.html (original)
+++ webservices/axis/trunk/java/xdocs/ClientAPI.html Wed Feb 23 01:30:20 2005
@@ -78,10 +78,10 @@
 </source>
 <h3>Engine</h3>
 <p>This is Axis 2 engine and it does not make any difference whether the engine is
used in the client side or the server side.&nbsp; </p>
-<h3>Correlator</h3>Correlator is required when client uses the non-blocking API
to invoke a web service. Its stores callback object with a key field as messageID. This is
a singleton class which consists of following two methods. 
-<p>&nbsp;&nbsp;<span class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
public void addCorrelationInfo(String msgid, Callback callbackObj)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-</span></p>
-<p class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
public Callback getCorrelationInfo(String MessageID)</p>
+<h3>Correlator</h3>
+<p>Correlator is required when client uses the non-blocking API to invoke a web service.
Its stores callback object with a key field as messageID. This is a singleton class which
consists of following two methods. </p>
+<pre><span class="style1"> public void addCorrelationInfo(String msgid, Callback
callbackObj)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   </span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

+   public Callback getCorrelationInfo(String MessageID) </pre>
 <h3>Listener </h3>
 <p>A separate listener is required to provide the asynchronous communication between
the client and the service. That is, when the client retrieves the response (if any) using
a separate transport connection, listener will act as an addressable end point to the service
so that it can send the service responses directly to the listener.</p>
 <h3>ClientProvider</h3>
@@ -90,37 +90,47 @@
 <h2>How Axis 2 Architecture Supports the above Message Patterns</h2>
 <h3>Robust Invocation</h3>
 <p>This invocation is mainly a one way operation. However it supports the returning
faults from the service. The transport protocol used in this message pattern should be bi-directional.&nbsp;
The following code snippet shows how the client can use above method of invocation and the
sequence diagram shows the complete message. </p>
-<p><strong>Code Snippet</strong></p><source></source>
-<p class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call.setTo(EPR)</p>
-<p class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call.setAction(String)</p>
-<p class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call.setTransportType(String)</p>
-<p class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call.send(SOAPEnvelope)
</p></source>
-<p><strong>Message Path and Sequence Diagram</strong></p>a -&gt;
call.send(SOAPEnvelope)<p>b -&gt; engine.send( ..)</p>
-<p>c -&gt; Send the SOAP message</p>
-<div align="center">
+<p><strong>Code Snippet</strong></p>
+ <pre>call.setTo(EPR)
+ call.setAction(String)
+call.setTransportType(String)
+call.send(SOAPEnvelope)  </pre>
+ <p><strong>Message Path and Sequence Diagram</strong></p>
+ <pre>a -&gt; call.send(SOAPEnvelope)
+b -&gt; engine.send( ..) 
+c -&gt; Send the SOAP message </pre>
+ <div align="center">
 	<pre> 
 <img height=149 src="images/image004.jpg" width=416 DESIGNTIMEURL="images/image004.jpg"></pre>
 </div>
 <p align=center>Figure 2- Sequence diagram corresponding to send ()</p>
 <h3>Fire and Forget Invocation</h3>
 <p>This method of invocation does not wait for any kind of response, not even for a
fault. Once the request is written to the wire the method immediately returns to the client.
Transport can be either unidirectional or bi-directional. Following code snippet shows how
the client can use above API method and the sequence diagram shows the complete message. </p>
-<p><strong>Code Snippet</strong></p><source class="style1">&nbsp;
call.setTo(EPR)<p>&nbsp;&nbsp; call.setAction(String)</p>
-<p>&nbsp;&nbsp; call.setTransportType(String)</p>
-<p>&nbsp;&nbsp; call.sendAsync(SOAPEnvelope) </p></source>
+<p><strong>Code Snippet</strong></p>
+<pre>call.setTo(EPR)<br>
+call.setAction(String)<br>
+call.setTransportType(String)<br>
+call.sendAsync(SOAPEnvelope) </pre>
 <p><strong>Message Path and Sequence Diagram</strong></p>
-<pre>a -&gt; call.send(SOAPEnvelope)</pre><pre>b -&gt; engine.send(
..)</pre><pre>c -&gt; Send the SOAP message</pre>
+<pre>a -&gt; call.send(SOAPEnvelope) 
+b -&gt; engine.send( ..) 
+c -&gt; Send the SOAP message </pre>
 <p align=center><img height=147 src="images/image006.jpg" width=434 DESIGNTIMEURL="images/image006.jpg"></p>
 <p align=center>Figure 3 – Sequence diagram corresponds to sendAsync()</p>
 <h3>Blocking Invocation of type In-Out</h3>
 <p>This invocation pattern lets the client to invoke a web service and wait till the
response is received before proceeding to the next line of invocation. This is very much similar
to the Call.invoke() with response types in Axis 1.1. In this approach, the transport specified
should be a bi-directional transport and the response is retrieved using the same transport
connection. The client will hang till the entire communication completes.</p>
-<p><strong>Code Snippet&nbsp;</strong></p>              

-<span class="style1">call.setTO(EPR)</span>
-<p class="style1"> call.setAction(String)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-</p>
-<p class="style1">call.setTransportType(String)</p>
-<p class="style1">SOAPEnvelope env=call.sendReceive(SOAPEnvelope)</p>
+<p><strong>Code Snippet&nbsp;</strong></p>
+<pre><span class="style1">call.setTO(EPR)</span> call.setAction(String)
+call.setTransportType(String)
+SOAPEnvelope env=call.sendReceive(SOAPEnvelope) </pre>
 <p><strong>Message Path and Sequence Diagram</strong></p>
-a -&gt; call.sendReceive(SOAPEnvelope)<pre>b- &gt; engine.send (..)</pre><pre>c
-&gt; Send the SOAP message</pre><pre>d -&gt; Receive the response over
the synchronous transport</pre><pre>w -&gt; ProviderX will be called as the
last step in engine.receive(..) </pre><pre>e -&gt; provider returns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</pre><pre>f -&gt; Call hand over the response to the client</pre>
+<pre>a -&gt; call.sendReceive(SOAPEnvelope)
+b- &gt; engine.send (..) 
+c -&gt; Send the SOAP message 
+d -&gt; Receive the response over the synchronous transport 
+w -&gt; ProviderX will be called as the last step in engine.receive(..) 
+e -&gt; provider returns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+f -&gt; Call hand over the response to the client </pre>
 <p align=center><img height=199 src="images/image008.jpg" width=439 DESIGNTIMEURL="images/image008.jpg"></p>
 <p align=center>Figure 4 – Sequence diagram corresponds to sendRecieve()</p>
 <h3>Non Blocking Invocation of type In-Out</h3>
@@ -128,9 +138,20 @@
 <p><strong>Method 1: Without a Client Side Listener</strong></p>
 <p>The communication happens using a single transport connection. With respect to the
transport protocol used, the web service response is received using the same connection. However
the client will not block till it receive the response. Instead it can proceed to the next
line of execution by registering a Callback object.&nbsp; The following code snippet shows
how the client can use above API method and the sequence diagram shows the complete message.
To use this pattern client should use the value “<strong>true</strong>” for
the parameter “useSeparateListener” in the setListenerTransport(..) method.</p>
 <p><strong>Code Snippet</strong></p>
-<pre>&nbsp;<span class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setTO(EPR)</span></pre><pre class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setAction(String)</pre><pre class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setTransportType(String)</pre><pre class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setListenerTransport(String transportType,boolean useSeparateListener) </pre><pre
class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.sendReceiveAsync (SOAPEnvelope, Callback)</pre>
+<pre>call.setTO(EPR)
+call.setAction(String) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

+call.setTransportType(String)
+call.setListenerTransport(String transportType,boolean useSeparateListener)
+call.sendReceiveAsync (SOAPEnvelope, Callback) </pre>
 <p><strong>Message Path and Sequence Diagram</strong></p>
-<pre>a -&gt; call.sendReceiveAsync (SOAPEnvelope, callbackObj)</pre><pre>p
-&gt; correlator.addCorrelationInfor(msgID,allbackObjRef)</pre><pre>b- &gt;
engine.send (..)</pre><pre>c -&gt; Send the SOAP message</pre><pre>d
-&gt; Receive the response over the synchronous transport</pre><pre>w -&gt;
ProviderX will be called as the last step in engine.receive(..) </pre><pre>q -&gt;
correlator.getCorrelationInfo(msgID)</pre><pre>g -&gt; callbackObj.onComplet()</pre>
+<pre>a -&gt; call.sendReceiveAsync (SOAPEnvelope, callbackObj) 
+p -&gt; correlator.addCorrelationInfor(msgID,allbackObjRef) 
+b- &gt; engine.send (..) 
+c -&gt; Send the SOAP message 
+d -&gt; Receive the response over the synchronous transport 
+w -&gt; ProviderX will be called as the last step in engine.receive(..) 
+q -&gt; correlator.getCorrelationInfo(msgID) 
+g -&gt; callbackObj.onComplete() </pre>
 <div align="center">
 	<pre><img height=225 src="images/image010.jpg" width=643 DESIGNTIMEURL="images/image010.jpg"></pre>
 </div>
@@ -139,17 +160,39 @@
 <p>In this method client will have the usage of non-blocking API with a separate listener
to accept the service response asynchronously. Outgoing transport does not wait for the response.
Instead corresponding incoming message is processed by different transport, which is created
by call object while it is sending the request. The correlation between the request and the
response messages is achieved using a similar message ID mechanism as in WS-Addressing. Once
the WS-Addressing support is implemented the client will only use &lt;wsa:MessageID&gt;
and the &lt;was:RelatesTo&gt; headers to achieve the correlation. </p>
 <p>The following code snippet shows how the client can use that above API method and
the sequence diagram shows the complete message. To use this pattern client should use the
value “<strong>false</strong>” for the parameter “useSeparateListener” in
the setListenerTransport(..) method.</p>
 <p><strong>Code Snippet</strong></p>
-<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="style1">call.setTO(EPR)</span></pre><pre class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setAction(String)</pre><pre class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setTransportType(String)</pre><pre class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.setListenerTransport(String transportType,boolean useSeparateListener) </pre><pre
class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call.sendReceiveAsync (SOAPEnvelope, Callback)</pre>
-<p><strong><u>&nbsp;</u></strong></p>
-<p><strong>Message Path and Sequence Diagram</strong></p>a -&gt;
call.sendReceiveAsync (SOAPEnvelope, callbackObj)<p>p -&gt; correlator.addCorrelationInfor(msgID,allbackObjRef)</p>
-<pre>b- &gt; engine.send (..)</pre><pre>c -&gt; Send the SOAP message</pre><pre>r
-&gt; Receive the response by the listener</pre><pre>s -&gt; engine.receive(..)</pre><pre>w
-&gt; ProviderX will be called as the last step in engine.receive(..) </pre><pre>q
-&gt; correlator.getCorrelationInfo(msgID)</pre><pre>g -&gt; callbackObj.onComplet()</pre>
+<pre>call.setTO(EPR)</span> 
+call.setAction(String) 
+call.setTransportType(String)
+call.setListenerTransport(String transportType,boolean useSeparateListener)
+call.sendReceiveAsync (SOAPEnvelope, Callback) </pre>
+<p><strong>Message Path and Sequence Diagram</strong></p>
+<pre>a -&gt; call.sendReceiveAsync (SOAPEnvelope, callbackObj)
+ p -&gt; correlator.addCorrelationInfor(msgID,allbackObjRef) 
+b- &gt; engine.send (..) 
+ c -&gt; Send the SOAP message 
+ r -&gt; Receive the response by the listener 
+ s -&gt; engine.receive(..) 
+ w -&gt; ProviderX will be called as the last step in engine.receive(..) 
+ q -&gt; correlator.getCorrelationInfo(msgID) 
+g -&gt; callbackObj.onComplete() </pre>
 <p align=center><img height=234 src="images/image012.jpg" width=648 DESIGNTIMEURL="images/image012.jpg"></p>
 <p align=center>Figure 6 – Sequence diagram corresponds to sendRecieveAync with one
way transport.</p>
 <p><strong><u>Asynchronous invocation with one way transport</u></strong></p>
 <p>The programming model almost similar to asynchronous invocation with two way transport.
Only difference is that &nbsp;for outgoing and incoming messages, it uses two engine instances,
and outgoing transport dose not wait for response. Instead, corresponding incoming message
is processed by different transport which is created by call object while it is sending the
request. Here the Listener is the newly created transport, which is running to get the incoming
message. Corresponding sequence diagram is shown in Figure 6, code snippet and message paths
are described below. </p>
 <h3>Code Snippet </h3>
-<pre class="style1">call.setTO(EPR)</pre><pre class="style1">call.setAction(String)</pre><pre
class="style1">call.setListenerTransport(“http”, false)</pre><pre class="style1">call.sendReceiveAsync(SOAPEnvelope,
Callback)</pre>
-<h3>Message paths</h3><pre>a -&gt; call.sendReceiveAsync (SOAPEnvelope,
callbackObj)</pre><pre>p -&gt; correlator.addCorrelationInfor(msgID,allbackObjRef)</pre><pre>b-
&gt; engine.send (..)</pre><pre>c -&gt; Send the SOAP message</pre><pre>r
-&gt; Receive the response by the listener</pre><pre>s -&gt; engine.receive(..)</pre><pre>w
-&gt; ProviderX will be called as the last step in engine.receive(..) </pre><pre>q
-&gt; correlator.getCorrelationInfo(msgID)</pre><pre>g -&gt; callbackObj.onComplet()</pre>
+<pre>call.setTO(EPR)
+ call.setAction(String) 
+call.setListenerTransport(“http”, false) 
+call.sendReceiveAsync(SOAPEnvelope, Callback) </pre>
+<h3>Message paths</h3>
+<pre>a -&gt; call.sendReceiveAsync (SOAPEnvelope, callbackObj) p -&gt; correlator.addCorrelationInfor(msgID,allbackObjRef)

+b- &gt; engine.send (..) 
+c -&gt; Send the SOAP message 
+r -&gt; Receive the response by the listener 
+s -&gt; engine.receive(..) 
+w -&gt; ProviderX will be called as the last step in engine.receive(..) 
+ q -&gt; correlator.getCorrelationInfo(msgID) 
+g -&gt; callbackObj.onComplete() </pre>
 <p align=center><img height=234 src="images/image013.jpg" width=648 DESIGNTIMEURL="images/image013.jpg"></p>
 <p align=center>Figure 6 – Sequence diagram corresponds to sendRecieveAync with one
way transport.</p>
 <h2>What is supported in M1</h2>

Modified: webservices/axis/trunk/java/xdocs/OMTutorial.html
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/OMTutorial.html?view=diff&r1=154990&r2=154991
==============================================================================
--- webservices/axis/trunk/java/xdocs/OMTutorial.html (original)
+++ webservices/axis/trunk/java/xdocs/OMTutorial.html Wed Feb 23 01:30:20 2005
@@ -86,15 +86,15 @@
 
 <h2>Section 2 - Working with OM</h2> 
 <h3>Obtaining the OM binary</h3>
-<p>OM is not a separate product but part of Axis2. However since Axis 2 has a modular
build structure
+<p>OM is not a separate product but part of Axis2. However since Axis2 has a modular
build structure
 It is possible to obtain a "OM only" jar. 
 <p>
 The easiest way to obtain the OM binary is to download the Axis2 binary distribution. The
lib directory will
 contain the axis2-om-M1.jar. However more adventures users can build the OM from source.
The next section describes how
-to build Om from source.
+to build OM from source.
 </p>
 Axis build is based on Maven. For further information on Maven (and the binary download)
please visit <a href="http://maven.apache.org.">the Maven site</a></p>
-<p>Once Maven is properly installed the source should be downloaded from the <a
href="http://svn.apache.org/repos/asf/webservices/axis/trunk/java/modules/om">Axis 2 SVN
repository</a>. (For further information on SVN and client programs for both windows
and Linux please visit <a href="http://svn.tigris.org">svn.tigris.org</a></p>
+<p>Once Maven is properly installed the source should be downloaded from the <a
href="http://svn.apache.org/repos/asf/webservices/axis/trunk/java/modules/om">Axis2 SVN
repository</a>. (For further information on SVN and client programs for both windows
and Linux please visit <a href="http://svn.tigris.org">svn.tigris.org</a></p>
 <p>After the source download OM-binary can be built. 
 For both Windows and Linux move to the project directory and execute the command "maven jar".
All other necessary jars will be automatically downloaded.
 When the build finishes successfully, the axis2-om-M1.jar can be found in the newly created
"targets" directory</p>

Modified: webservices/axis/trunk/java/xdocs/userguide.html
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/userguide.html?view=diff&r1=154990&r2=154991
==============================================================================
--- webservices/axis/trunk/java/xdocs/userguide.html (original)
+++ webservices/axis/trunk/java/xdocs/userguide.html Wed Feb 23 01:30:20 2005
@@ -22,10 +22,10 @@
 <body>
 <h1 align="center"><a name="_Toc96697849">Axis 2.0 User's Guide </a></h1>
 <p>&nbsp; </p>
-<h3><a name="_Toc96698076"></a><a name="_Toc96697851">Introduction
</a></h3>
+<h3><a name="_Toc96698076"></a>Introduction </h3>
 <p>Welcome to Axis 2.0, the next generation of Apache Axis !!! This User Guide will
help you to understand what you will get from Axis 2.0 and how to get started. </p>
 <p>We hope you will benefit from the power of Axis 2.0. </p>
-<h3><a name="_Toc96698077"></a><a name="_Toc96697852">What is Axis
2.0 ? </a></h3>
+<h3><a name="_Toc96698077"></a>What is Axis 2.0 ? </h3>
 <p>Before we start, its highly recommended to read <a href="http://ws.apache.org/axis/java/user-guide.html">Axis
1.x User's guide </a>, if you are new to Axis. </p>
 <p>Axis 2.0 is the next generation of Apache Axis. In late August 2004, during the
Axis Summit held in Colombo, Sri Lanka, a new architecture was introduced to have a much more
flexible, efficient and configurable Axis. Even though the architecture is new, some of the
well established concepts from Axis 1.x, like handlers are preserved in Axis 2.0 also. Axis
2.0 comes with lots of new features, enhancements and new industry specification implementations.
</p>
 <p>After months of continued discussion and coding effort in this direction, Axis 2.0
now delivers the following key features: </p>
@@ -44,7 +44,7 @@
 <p>We hope you enjoy using Axis. Please note that this is an open-source effort - if
you feel the code could use some new features or fixes, please get involved and lend a hand!
The Axis developer community welcomes your participation . </p>
 <p>Let us know what you think! </p>
 <p>Please send feedback about the package to &quot; <a href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org
</a>&quot; and make sure to prefix the subject of the mail with “[Axis2]”. </p>
-<h3><a name="_Toc96698078"></a><a name="_Toc96697853">What's in this
release? </a></h3>
+<h3><a name="_Toc96698078"></a>What's in this release? </h3>
 <p>This release includes the following features: </p>
 <ul>
   <li>SOAP 1.1/1.2 compliant engine </li>
@@ -57,7 +57,7 @@
   <li>WSDL 1.1 and 2.0 compliant Component Model </li>
   <li>Examples, including a client and server for the one-way, two-way and synchronous,
asynchronous web services invocation </li>
 </ul>
-<h3><a name="_Toc96698079"></a><a name="_Toc96697854">What's still
to do? </a></h3>
+<h3><a name="_Toc96698079"></a>What's still to do? </h3>
 <p>Please see a list of what we think needs doing - and please consider helping out
if you're interested &amp; able! </p>
 <ul>
   <li>Encoding/data binding </li>
@@ -67,15 +67,15 @@
   <li>Server side sync/async support </li>
   <li>Complete XML infoset support for AXIOM </li>
 </ul>
-<h2><a name="_Toc96698080"></a><a name="_Toc96697855">Installation
Guide </a></h2>
-<h3><a name="_Toc96698081"></a><a name="_Toc96697856">Introduction
</a></h3>
+<h2><a name="_Toc96698080"></a>Installation Guide </h2>
+<h3><a name="_Toc96698081"></a>Introduction </h3>
 <p>Axis 2.0 can be downloaded as a <a href="releases.html">zipped binary </a>
or the <a href="cvs-usage.html">source </a>. This section describes how Axis2
can be installed either as a standalone server or as part of a J2EE compliant servlet container.
</p>
-<h3><a name="_Toc96698082"></a><a name="_Toc96697857">Prerequisites
</a></h3>
+<h3><a name="_Toc96698082"></a>Prerequisites </h3>
 <p>Axis2 requires the Java Runtime Environment to be properly installed. Axis is developed
to be run on JRE 1.4 and upwards but it has not been fully tested with the latest JRE 1.5.
Hence it is safe to run Axis with Java 1.4. If the JRE is not already in place it must be
installed to proceed further. For instructions on setting up the JRE in different operating
systems, please visit <a href="http://java.sun.com/">http://java.sun.com </a>.
</p>
 <p>All the required jars are shipped with the binary distribution and if the source
distribution is used, running the maven build will automatically download the required jars
for you. </p>
 <p>Following sections describe how each type of distribution needs to be installed.
Since the process with the source distribution is similar to the binary distribution after
building, the first section explains the process of building Axis from source. If you have
the binary distribution you can skip the build sections and directly go to the binary installation
section. </p>
-<h3><a name="_Toc96698083"></a><a name="_Toc96697858">Building Axis2
from source </a></h3>
-<h4><a name="_Toc96698084"></a><a name="_Toc96697859">Setting up
the Environment and the tools </a></h4>
+<h3><a name="_Toc96698083"></a>Building Axis2 from source </h3>
+<h4><a name="_Toc96698084"></a>Setting up the Environment and the tools
</h4>
 <p>The Axis2 build is based on <a href="http://maven.apache.org/">Maven </a>.
Hence the prerequisite to build Axis2 from source is to have Maven installed. Even though
extensive instruction guides are available at the Maven site, this guide also contains the
“easiest path” for quick environment setting. Advanced users who wish to know more about
Maven can visit <a href="http://maven.apache.org/start/index.html">here </a>.
</p>
 <p>For Windows users the easiest way is to download the windows installer package.
Once the installer package is run, all the necessary environment variables will be properly
set. Once Maven is installed, the success of the installation can be tested by typing “maven
–version” in the command prompt. </p>
 <p>&nbsp; </p>
@@ -83,14 +83,14 @@
 <p>&nbsp; </p>
 <p>For Linux users the tar ball or the zip archive is the best options. (Unfortunately
there is no rpm as such that can be easily installed) Once the archive is downloaded expand
it to a directory of choice and set the environment variable “MAVEN_HOME” and add MAVEN_HOME/bin
to the path as well. More instructions for installing Maven in UNIX based operating systems
can be found <a href="http://maven.apache.org/start/install.html">here </a>. </p>
 <p>Once maven is properly installed it's all that is needed to start building Axis2.
</p>
-<h4><a name="_Toc96698085"></a><a name="_Toc96697860">The Axis source
distribution </a></h4>
+<h4><a name="_Toc96698085"></a>The Axis source distribution </h4>
 <p>The <a href="releases.html">source distribution </a> is available as
a zipped archive or a tar ball. All the necessary build scripts are included with the source
distribution. Once the source archive is expanded into a directory of choice, moving to the
particular directory and typing maven will build the axis jar file. </p>
 <p align="center"><img width="540" height="292" src="images/clip_image004.jpg"></p>
 <p>Once the command completes, the binaries (jar files in this case) can be found at
a newly created “target” directory. </p>
 <p><strong>Note – For the first Maven build (if the maven repository is not
built first) it will take a while since required jars need to be downloaded. However this
is a once only process and will not affect any successive builds. </strong></p>
 <p><strong> </strong>The default maven build will however build only the
Axis2 jar file. To obtain a WAR (Web Archive), “maven war” command should be issued. This
will create a complete WAR with the name axis2.war inside the target directory. </p>
 <p>Once this build step is complete, the binaries are ready to be deployed. </p>
-<h3><a name="_Toc96698086"></a><a name="_Toc96697861">Installing
Axis2 in a Servlet container </a></h3>
+<h3><a name="_Toc96698086"></a>Installing Axis2 in a Servlet container
</h3>
 <p>Installation of the WAR is quite simple. It's a matter of dropping the war in the
webapps folders and most servlet containers will automatically install the war. However some
servlet containers may require a restart in order to capture the new web application. Please
refer your servlet container documentation for more information about this. </p>
 <p>Once the WAR is successfully installed it can be tested by pointing the web browser
to the <strong>http:// &lt;host :port&gt;/ axis2. </strong>It should produce
the following page. </p>
 <p align="center"><strong><img width="624" height="439" src="images/clip_image006.jpg"></strong></p>
@@ -108,7 +108,7 @@
 </p>
 <!-- Image goes here -->
 
-<h3><a name="_Toc96698087"></a><a name="_Toc96697862">Running the
Axis2 standalone server </a></h3>
+<h3><a name="_Toc96698087"></a>Running the Axis2 standalone server </h3>
 <p>Since a J2EE servlet container can be heavy in certain cases, a simple socket server
is provided with Axis2. </p>
 Start scripts are inluded in the bin directory of the binary distribution.</p>
 <p>For windows</p>
@@ -127,7 +127,7 @@
  Note - the directory entered as the repository loacation needs to have a services directory
inside. This is
  absolutely required and AXIS will not create it automatically in the case of the simple
axis server. 
  </b></p>
-<h2><a name="_Toc96697863"></a><a name="_Toc96698088">Samples </a></h2>
+<h2><a name="_Toc96697863"></a>Samples </h2>
 <p>There are three sample programs, which are listed below, that will be explained
in this user guide and the relevant code can be found in the source directory under ../modules/samples/src/java/userguide/sample1.
</p>
 <ol>
   <li>Case1: Echo Synchronous call. </li>
@@ -232,7 +232,7 @@
     <td valign="top"><p>The jar that bundles the server side and client side
code. </p></td>
   </tr>
 </table>
-<h3><a name="_Toc96698089"></a><a name="_Toc96697864">Pre-Conditions
</a></h3>
+<h3><a name="_Toc96698089"></a>Pre-Conditions </h3>
 <p>Axis2 should be installed (see the Installation guide above). For simplicity samples
will assume the servlet container is Tomcat. </p>
 <p>AXIS_HOME environment variable be set. (Rationale: The compile time and runtime
libraries required in the classpath for the samples will be picked up form the deployed Asix2.)
</p>
 <p align="center"><img width="384" height="430" src="images/clip_image014.jpg"></p>
@@ -251,7 +251,7 @@
 	<li>sample1-all.jar – Compiled sources required for running the client applications
(Packaged to modules/samples/build/lib)</li>
 </ul>
 <p>Once the sample is compiled once, all the required jar files for deploying and running
all three Cases of the sample will be compiled and packaged.</p>
-<h3><a name="_Toc96698091"></a><a name="_Toc96697866">Sample1- Case1
: Echo Synchronous call </a></h3>
+<h3><a name="_Toc96698091"></a>Sample1- Case1 : Echo Synchronous call </h3>
 <p>The sample1 - Case1: Echo synchronous call is intended to demonstrate the synchronous
web service call in Axis2 with both the client side and client side running Axis2. In the
next few steps the user will be walked through in: </p>
 <ul>
   <li>Compiling and building a web service </li>
@@ -302,7 +302,7 @@
 <p>&gt;ant echo </p>
 <p>in the command prompt. If all goes well the user will get the following output where
the program will print the request SOAP message and the response SOAP message, which will
be same as the request message. </p>
 <p align="center"><img width="648" height="269" src="images/clip_image022.jpg"></p>
-<h3><a name="_Toc96698092"></a><a name="_Toc96697867">Sample1 - Case2:
Echo Synchronous call with a phased handler. </a></h3>
+<h3><a name="_Toc96698092"></a>Sample1 - Case2: Echo Synchronous call with
a phased handler. </h3>
 <p>This example will go one step forward from the example above and will deploy a web
service with a Logging handler. The client application will not change, of course with an
exception; the Endpoint Reference will be changed to refer the new service <strong>“Sample1WithHandler”
</strong>. </p>
 <p>There is a Handler (LoggingHandler.java) that is introduced in this case and it
will basically log the fact that it got called. The code can be found in LoggingHandler.java.
</p>
 <pre class="style1 style2 style3">public void invoke(MessageContext msgContext) throws
AxisFault { 
@@ -381,7 +381,7 @@
 <p>in the command prompt. If all goes well the user will get the following output where
the program will print the request SOAP message and the response SOAP message, which will
be same as the request message. </p>
 <p align="center"><img width="648" height="265" src="images/clip_image024.jpg"></p>
 <p>The service <strong>“sample1withhandler” </strong> will run its logging
handler as it gets called and it will log the call as the handler gets called in the inflow.
This logged information can be found in the server logs. </p>
-<h3><a name="_Toc96698093"></a><a name="_Toc96697868">Sample1 - Case3:
Echo Asynchronous call. </a></h3>
+<h3><a name="_Toc96698093"></a>Sample1 - Case3: Echo Asynchronous call.
</h3>
 <p>In this case the example focuses on calling a synchronous web service in an asynchronous
manner in the client side. If this example is compared with the first example, which is <strong>“Echo
Synchronous call” </strong>, the server side is identical for both the cases. The difference
will be in the web service client that will be used. </p>
 <p>In this case the client will make a web service call and it will register a call
back handler and sends the message out. The difference will be that the client application
that is doing the web service call will not hang till the response. Rather it will get returned
and once the response returns the client will get notified by way of the registered callback
(This is one of the two methods this can be done in Axis 2.0. Refer <a href="ClientAPI.html">Client
Api Tutorial </a> for more information). </p>
 <p>The callback handler that will be used is ClientEchoCallbackHandler.java and the
client program is AsynchronousClient.java. </p>
@@ -398,8 +398,8 @@
 <p>&nbsp; </p>
 <strong><br>
 </strong>
-<h2><a name="_Toc96698094"></a><a name="_Toc96697869">Writing your
own Service and a client </a></h2>
-<h3><a name="_Toc96698095"></a><a name="_Toc96697870">Writing a New
Service </a></h3>
+<h2><a name="_Toc96698094"></a>Writing your own Service and a client </h2>
+<h3><a name="_Toc96698095"></a>Writing a New Service </h3>
 <p>Writing a new Web Service in Axis2-M1 requires you to do following steps </p>
 <p><strong>&#149;&nbsp; Writing a new Web Service implementation class
</strong></p>
 <p>Axis2 M1 does not support data binding and supports only the XML level messaging.
The default provider (do not worry about this if you do not know what it is) only supports
the java methods having the return type as OMElement and only parameter as an OMElement. </p>
@@ -427,7 +427,7 @@
 service.xml as well. The tool start script can be found in the bin directory. 
 
 
-<h3><a name="_Toc96698096"></a><a name="_Toc96697871">Writing a Client
for the Axis2-M1 </a></h3>
+<h3><a name="_Toc96698096"></a>Writing a Client for the Axis2-M1 </h3>
 <p>Axis2 M1 supports HTTP transport only. Axis2-M1 supports the following interaction
patterns. </p>
 <p>&#149;&nbsp; Blocking invocation of type in-out (request/response) </p>
 <p>&#149;&nbsp; Non blocking invocation of type in-out (Without a separate
Listener) </p>
@@ -452,7 +452,7 @@
  </span></li>
 </ol>
 <p>for more information in handling the OM objects please read the <a href="OMTutorial.html">OM
Tutorial </a>. </p>
-<h4><a name="_Toc96698097"></a><a name="_Toc96697872">Synchronous
Client </a></h4>
+<h4><a name="_Toc96698097"></a>Synchronous Client </h4>
 <p>Invoking the synchronous web service call can be done with the following code. </p>
 <pre class="style4">EndpointReference targetEPR = <strong>new </strong>EndpointReference(AddressingConstants.WSA_TO,
&quot;http://127.0.0.1:&quot; + (EngineUtils.TESTING_PORT) + &quot;/axis/services/echo&quot;
);  
 Call call = <strong>new </strong>Call();  
@@ -461,7 +461,7 @@
 <p>&#149;&nbsp; The Endpoint Reference (EPR) is the To location of the web
service. </p>
 <p>&#149;&nbsp; call.setTo() method registers the created EPR with the call
object. </p>
 <p>&#149;&nbsp; call.sendRecieve() method invokes the web service at the location
specified by the EPR using the given SOAP Message. </p>
-<h4><a name="_Toc96698098"></a><a name="_Toc96697873">Asynchronous
Client </a></h4>
+<h4><a name="_Toc96698098"></a>Asynchronous Client </h4>
 <p>Invoking the asynchronous web service call can be done with the following code.
</p>
 <pre class="style4">EndpointReference targetEPR = <strong>new </strong>EndpointReference(AddressingConstants.WSA_TO,
&quot;http://127.0.0.1:&quot; + (EngineUtils.TESTING_PORT)+ &quot;/axis/services/echo&quot;
);  
 Call call = <strong>new </strong>Call();  



Mime
View raw message