axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cha...@apache.org
Subject svn commit: r397184 [2/3] - in /webservices/axis2/trunk/java: ./ xdocs/ xdocs/0_95/ xdocs/latest/
Date Wed, 26 Apr 2006 11:43:33 GMT
Modified: webservices/axis2/trunk/java/xdocs/0_95/userguide3.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/0_95/userguide3.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/0_95/userguide3.html (original)
+++ webservices/axis2/trunk/java/xdocs/0_95/userguide3.html Wed Apr 26 04:43:28 2006
@@ -1,515 +1,499 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-      "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
-  <title>Axis2 User's Guide</title>
-  <meta name="generator" content="amaya 9.3, see http://www.w3.org/Amaya/">
-</head>
-
-<body lang="en-US" dir="ltr">
-<h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
-
-<p><i>Version 0.95</i></p>
-<i>User Feedback: <a
-href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>
-
-<p align="right">Pages: <a href="userguide.html">Content</a>, <a
-href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <b>3</b>, <a
-href="userguide4.html">4</a>, <a href="userguide5.html">5</a></p>
-
-<p><b><font size="4">Note (on samples):</font></b> In this page of the user's
-guide we will look at how to write Web Service Clients using Axis2. All the
-user's guide samples are located at the <b><font
-color="#000000">"samples/userguide/src"</font></b> directory of the binary
-distribution. So... let's explore the samples.</p>
-
-<h2><a name="Web_Service_Clients_Using_Axis2">Web Service Clients Using
-Axis2</a></h2>
-
-<p>Now let's see how we can write a Web Service Client to use this Web
-Service.</p>
-
-<p>Web services can be used to provide wide range of functionality to the
-users ranging from simple, less time consuming  operations such as
-"getStockQuote"  to time consuming business services. When we utilize (invoke
-using client applications) these Web Service we cannot use some simple
-generic invocation paradigm that suites all the timing complexities involved
-in the service operations. For example, if we use a single transport channel
-(such as HTTP) to invoke a Web Service with and IN-OUT operation that take
-long time to complete, then most of the time we may end up with "connection
-time outs". On the other hand, if there are simultaneous service invocations
-that  we need to perform from a single client application, then the use of a
-"blocking" client API will degrade the performance of the client application.
-Similarly there are various other consequences such as One-Way transports
-that come in to play when we need them. Let's try to analyze some common
-service invocation paradigms.</p>
-
-<p>Many web service engines provide the users with a Blocking and
-Non-Blocking client APIs.</p>
-<ul>
-  <li><p style="margin-bottom: 0in"><b>Blocking API</b> -Once the service
-    invocation is called, the client application hangs and only gets control
-    back when the operation completes, after which client receives a response
-    or a fault. This is the simplest way of invoking Web Services and it also
-    suites many business situations.</p>
-  </li>
-  <li><p><b>Non-Blocking API </b>- This is a callback or polling based API,
-    hence once a service invocation is called, the client application
-    immediately gets the control back and the response is retrieved using the
-    callback object provided. This approach provides the flexibility to the
-    client application to invoke several Web Services simultaneously without
-    blocking the operation already invoked.</p>
-  </li>
-</ul>
-
-<p>Both these mechanisms work in the API level. Let's name the  asynchronous
-behavior that we can get using the <strong>Non-Blocking API</strong> as
-<b>API Level Asynchrony.</b></p>
-
-<p>Both these mechanisms use single transport connection to send the request
-and to receive the response. They severely lags the capability of using two
-transport connections for the request and the response (either One-Way of
-Two-Way). So both these mechanisms fail to address the problem of long
-running transactions (the transport connection may time-out before the
-operation completes). A possible solution would be to use <strong>two
-separate transport connections for request and response</strong>. The
-asynchronous behavior that we gain using this solution can be called
-<b>Transport Level Asynchrony</b>.</p>
-
-<p>By combining API Level Asynchrony &amp; Transport Level Asynchrony we can
-obtain four different invocation patterns for web services as shown in the
-following table.</p>
-<a name="table1"></a>
-
-<table width="100%" border="1" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <td width="33%" height="19"><p><strong>API
-        (Blocking/Non-Blocking)</strong></p>
-      </td>
-      <td width="33%"><p><strong> Dual Transports (Yes/No)</strong></p>
-      </td>
-      <td width="33%"><p><strong>Description</strong></p>
-      </td>
-    </tr>
-    <tr>
-      <td width="33%" height="19"><p>Blocking</p>
-      </td>
-      <td width="33%"><p>No</p>
-      </td>
-      <td width="33%"><p>Simplest and the familiar invocation pattern</p>
-      </td>
-    </tr>
-    <tr>
-      <td width="33%" height="19"><p>Non-Blocking</p>
-      </td>
-      <td width="33%"><p>No</p>
-      </td>
-      <td width="33%"><p>Using callbacks or polling</p>
-      </td>
-    </tr>
-    <tr>
-      <td width="33%" height="19"><p>Blocking</p>
-      </td>
-      <td width="33%"><p>Yes</p>
-      </td>
-      <td width="33%"><p>This is useful when the service operation is IN-OUT
-        in nature but the transport used is One-Way (e.g. SMTP)</p>
-      </td>
-    </tr>
-    <tr>
-      <td width="33%" height="19"><p>Non-Blocking</p>
-      </td>
-      <td width="33%"><p>Yes</p>
-      </td>
-      <td width="33%"><p>This is can be used to gain the maximum asynchronous
-        behavior. No blocking in the API level and also in the transport
-        level</p>
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-<p>Axis2 provides the user with all these possibilities to invoke Web
-Services.</p>
-
-<p>Below we describe how to write Web Services Clients using Axis2. This can
-be done in two methods:</p>
-<ol>
-  <li><a href="#Writing_Web_Service_Clients_using_Axis2's_Primary_APIs">Using
-    the Axis2's primary APIs</a></li>
-  <li><p><a
-    href="#Writing_Web_Service_Clients_using_Code_Generation_with_Data_Binding_Support">Using
-    stubs generated with data binding support</a>, making the life easy for
-    developers writing Web Service client applications</p>
-  </li>
-</ol>
-
-<h3><a name="Writing_Web_Service_Clients_using_Axis2's_Primary_APIs">Writing
-Web Service Clients Using Axis2's Primary APIs</a></h3>
-
-<h4><a name="EchoBlockingClient">EchoBlockingClient</a></h4>
-
-<p>Axis2 provides the user with several invocation patterns for Web Services,
-ranging from pure blocking single channel invocations to a non-blocking dual
-channel invocations. Let's first see how we can write a client to invoke
-"echo" operation of "MyService" using the simplest blocking invocation. The
-client code you need to write is as follows.</p>
-<source><pre>  try {
-            OMElement payload = ClientUtil.getEchoOMElement();
-            <span style="color: #24C113">            
-            Options options = new Options();
-            options.setTo(targetEPR);
-            options.setListenerTransportProtocol(Constants.TRANSPORT_HTTP);
-            options.setUseSeparateListener(false);
-
-            ServiceClient serviceClient = new ServiceClient();
-            serviceClient.setOptions(options);
-
-            OMElement result = sender.sendReceive(payload);
-            </span>
-            StringWriter writer = new StringWriter();
-            result.serializeWithCache(new OMOutput(XMLOutputFactory.newInstance().createXMLStreamWriter(writer)));
-            writer.flush();
-
-            System.out.println(writer.toString());
-
-        } catch (AxisFault axisFault) {
-            axisFault.printStackTrace();
-        } catch (XMLStreamException e) {
-            e.printStackTrace();
-        }
-}</pre>
-</source>
-<p>The green lines shows the set of operations that you need to perform
-inorder to invoke a web service. The rest is used to create the OMElement
-that needs to be sent and display the response OMElement. To test this
-client, use the provided ant build file that can be found in the
-"Axis2Home/samples" directory. Run the "testEchoBlockingClient" target . If
-you can see the response OMElement printed in your command line,  then you
-have successfully tested the client. </p>
-
-<h4><a name="PingClient">PingClient</a></h4>
-
-<p>In the Web Service "MyService" we had a IN-ONLY operation with the name
-"ping" (see <a href="userguide2.html#Web_Services_Using_Axis2">Web Services
-Using Axis2</a>). Let's write a client to invoke this operation. The client
-code is as follows:</p>
-<pre> try {
-       OMElement payload = ClientUtil.getPingOMElement();
-       Options options = new Options();
-       options.setTo(targetEPR);
-       ServiceClient serviceClient = new ServiceClient();
-       serviceClient.setOptions(options);
-       serviceClient.fireAndForget(payload);
-        /**
-         * We have to bock this thread untill we send the request , the problem
-         * is if we go out of the main thread , then request wont send ,so
-         * you have to wait some time :)
-         */
-       Thread.sleep(500);
-     } 
-catch (AxisFault axisFault) {
-            axisFault.printStackTrace();
-     }</pre>
-
-<p>Since we are accessing a IN-ONLY operation we can directly use the
-"fireAndForget()" in ServiceClient to invoke this operation , and that will
-not block the invocation, hence it will return the control immediately back
-to the client. You can test this client by running the target
-"testPingClient" of the ant build file at "Axis2Home/samples".</p>
-
-<p>We have invoked the two operations in our service. Are we done? No! There
-are lot more to explore. Let's see some other ways to invoke the same
-operations...</p>
-
-<h4><a name="EchoNonBlockingClient">EchoNonBlockingClient</a></h4>
-
-<p>In the EchoBlockingClient once the "serviceCleint.sendReceive(payload);"
-is called, the client is blocked till the operation is completed. This
-behavior is not desirable when there are many Web Service invocations to be
-done in a single client application. A solution would be to use a
-Non-Blocking API to invoke web services. Axis2 provides a callback based
-non-blocking API for users.</p>
-
-<p>A sample client for this can be found under
-"Axis2Home/samples/userguide/src/userguide/clients" with the name
-EchoNonBlockingClient. If we consider the changes that user may have to do
-with respect to the "EchoBlockingClient" that we have already seen, it will
-be as follows:</p>
-<pre style="margin-bottom: 0.2in">serviceClient.sendReceiveNonblocking(payload, callback);</pre>
-
-<p>The invocation accepts a callback object as a parameter. Axis2 client API
-provides an abstract Callback with the following methods:</p>
-<pre>public abstract void onComplete(AsyncResult result);
-public abstract void onError(Exception e);
-public boolean isComplete() {}</pre>
-
-<p>The user is expected to implement the "onComplete " and "onError " methods
-of their extended call back class. Axis2 engine calls the onComplete method
-once the Web Service response is received by the Axis2 Client API
-(ServiceClient). This will eliminate the blocking nature of the Web Service
-invocations and provides the user with the flexibility to use Non Blocking
-API for Web Service Clients.</p>
-
-<p>To run the sample client ( EchoNonBlockingClient) you can simply use the
-"testEchoNonBlockingClient" target of the ant file found at the
-"Axis2Home/samples" directory.</p>
-
-<h4><a name="EchoNonBlockingDualClient">EchoNonBlockingDualClient</a></h4>
-
-<p>The solution provided by the Non-Blocking API has one limitation when it
-comes to  Web Service invocations which takes long time to complete. The
-limitation is due to the use of single transport connection to invoke the Web
-Service and to retrieve the response. In other words, client API provides a
-non blocking invocation mechanism for the users, but the request and the
-response comes in a single transport (Two-Way transport) connection (like
-HTTP). Long running Web Service invocations or Web Service invocations using
-One-Way transports (like SMTP) cannot be utilized by simply using a non
-blocking invocation. </p>
-
-<p>The trivial solution is to use separate transport connections (either
-One-Way or Two-Way) for the request and response. The next problem that needs
-to be solved is the correlation (correlating the request and the response).
-<a href="http://www.w3.org/Submission/ws-addressing/"
-target="_blank">WS-Addressing</a> provides a neat solution to this using
-&lt;wsa:MessageID&gt; and &lt;wsa:RelatesTo&gt; headers. Axis2 provides
-support for addressing  based correlation mechanism and a complying Client
-API to invoke Web Services with two transport connections. (Core of Axis2
-does not depend on WS-Addressing, but contains a set of parameters like in
-addressing that can be populated in any means. WS-Addressing is one of the
-users that may populate them. Even the transports can populate these. Hence
-Axis2 has the flexibility to use different versions of addressing)</p>
-
-<p>Users can select between Blocking or Non-Blocking APIs for the Web Service
-clients with two transport connections. By simply using a boolean flag, the
-same API can be used to invoke web services (IN-OUT operations) using two
-separate transport connections. Let's see how it's done using an example.
-Following code fragment shows how to invoke the same "echo" operation using
-Non-Blocking API with two transport connections<strong>. The ultimate
-asynchrony!!</strong></p>
-<pre>  try {
-            OMElement payload = ClientUtil.getEchoOMElement();
-            Options options = new Options();<br>            options.setTo(targetEPR);  
-
-            //The boolean flag informs the axis2 engine to use two separate transport connection
-            //to retrieve the response.
-<br>            options.setUseSeparateListener(true);
-               options.setAction("urn:echo"); 
-            
-            ServiceClient serviceClinet = new ServiceClinet();
-<br>            serviceClinet.setOptions(options);</pre>
-<pre>                  
-            //Callback to handle the response
-            Callback callback = new Callback() {
-                public void onComplete(AsyncResult result) {
-                    try {
-                        StringWriter writer = new StringWriter();
-                        result.serializeWithCache(new OMOutput(XMLOutputFactory.newInstance()
-                                                                .createXMLStreamWriter(writer)));
-                        writer.flush();
-
-                        System.out.println(writer.toString());
-
-                    } catch (XMLStreamException e) {
-                        onError(e);
-                    }
-                }
-
-                public void onError(Exception e) {
-                    e.printStackTrace();
-                }
-            };
-
-            //Non-Blocking Invocation
-            serviceClinet.sendReceiveNonBlocking(payload, callback);
-
-            //Wait till the callback receives the response.
-            while (!callback.isComplete()) {
-                Thread.sleep(1000);
-            }
-            serviceClinet.finalizeInvoke();
-
-        } catch (AxisFault axisFault) {
-            axisFault.printStackTrace();
-        } catch (Exception ex) {
-            ex.printStackTrace();
-        }</pre>
-
-<p><font color="#0000ff"><font color="#000000">The boolean flag (value true)
-in the "<b>options.setUseSeparateListener(...)</b>" method informs the Axis2
-engine to use separate transport connections for request and response.
-Finally "<b>serviceClinet.finalizeInvoke()</b>" informs the Axis2 engine to
-stop the client side listener started to retrieve the
-response.</font></font></p>
-
-<p>Before we run the sample client we have one more step to perform. As
-mentioned earlier Axis2 uses addressing based correlation mechanism, hence we
-need to "engage" addressing module in the server side as well. According to
-the Axis2 architecture, addressing module put its handlers in the
-"<strong>pre-dispatch</strong>" phase (See <a
-href="Axis2ArchitectureGuide.html" target="_blank">Architecture Guide</a> for
-more details about phases)  and hence "engaging" means simply adding module
-reference in the "axis2.xml" (NOT the "services.xml"). Now add the following
-line to the "axis2.xml" that you can find in the "/webapps/axis2/WEB-INF"
-directory in the servlet container. </p>
-<pre style="margin-bottom: 0.2in"> &lt;module ref="addressing"/&gt;</pre>
-
-<p>Note: <font color="#000000">Once you change the "axis2.xml" you need to
-restart the servlet container.</font></p>
-
-<p>This will enable the addressing in the server side. Now you can test the
-"TestEchoNonBlockingDualClient" using the "testEchoNonBlockingDualClient"
-target of the ant file found at "Axis2Home/samples" directory. If you see the
-response OMElement printed in the client side, then you have successfully
-tested the Non Blocking API with two transport channels at the client
-side.</p>
-
-<h4><a name="EchoBlockingDualClient">EchoBlockingDualClient</a></h4>
-
-<p>This is again a Two-Way transport request/response client, but this time,
-we use a Blocking API in the client code. Sample code for this can be found
-in the "Axis2Home/samples/userguide/src/userguide/clients/" directory and the
-explanation is similar to the <a
-href="#EchoNonBlockingDualClient">EchoNonBlockingDualClient</a>, except that
-here we do not use a callback object to handle response. This is a very
-useful mechanism when the service invocation is IN-OUT in nature and the
-transports are One-Way (e.g. SMTP). For the sample client we use two HTTP
-connections for request and response. User can test this client using the
-"echoBlockingDualClient" target of the ant build file found in the
-"Axis2Home/samples" directory.</p>
-
-<p>See <a href="http-transport.html" target="_blank">Configuring
-Transports</a> for use different transports.</p>
-
-<h3><a
-name="Writing_Web_Service_Clients_using_Code_Generation_with_Data_Binding_Support">Writing
-Web Service Clients using Code Generation with Data Binding Support</a></h3>
-
-<p>Axis2 provides the data binding support for Web Service client as well.
-The user can generate the required stubs from a given WSDL with the other
-supporting classes. Let's generate stubs for the WSDL used earlier to
-generate the skeleton for the "Axis2SampleDocLitPortType". Simply run the
-WSDL2Java tool that can be found in the bin directory of the Axis2
-distribution using the following command:</p>
-<pre style="margin-bottom: 0.2in">WSDL2Java -uri ..\samples\wsdl\Axis2SampleDocLit.wsdl -o ..\samples\src -p org.apache.axis2.userguide</pre>
-
-<p>This will generate the required stub "Axis2SampleDocLitPortTypeStub.java"
-that can be used to invoke the Web Service Axis2SampleDocLitPortType. Let's
-see how we can use this stub to write Web Service clients to utilize the Web
-Service Axis2SampleDocLitPortType (the service that we have already
-deployed).</p>
-
-<h4><a name="Client_for_echoVoid_Operation">Client for echoVoid
-Operation</a></h4>
-
-<p>Following code fragment shows the necessary code for utilizing the
-echoVoid operation of the Axis2SampleDocLitPortType that we have already
-deployed. In this operation, a blank SOAP body element is sent to the Web
-Service and the same SOAP envelope is echoed back.</p>
-<pre> try {
-   //Create the stub by passing the AXIS_HOME and target EPR.
-   //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
-   Axis2SampleDocLitPortTypeStub stub = new Axis2SampleDocLitPortTypeStub(null, 
-                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
-   stub.echoVoid();
-
-} catch (Exception e) {
-    e.printStackTrace();
-}</pre>
-
-<h4><a name="Client_for_echoString_Operation">Client for echoString
-Operation</a></h4>
-
-<p>Following code fragment shows the necessary code for utilizing the
-echoString operation of the Axis2SampleDocLitPortType that we have already
-deployed. The code is very simple to understand and the explanations are in
-the form of comments.</p>
-<pre>try {
-     //Create the stub by passing the AXIS_HOME and target EPR.
-     //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME 
-     Axis2SampleDocLitPortTypeStub stub= new Axis2SampleDocLitPortTypeStub(null,
-                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
-     //Create the request document to be sent.
-     EchoStringParamDocument  reqDoc= EchoStringParamDocument.Factory.newInstance();
-     reqDoc.setEchoStringParam("Axis2 Echo");
-     //invokes the web service.
-     EchoStringReturnDocument resDoc=stub.echoString(reqDoc);
-     System.out.println(resDoc.getEchoStringReturn());
-
-    } catch (Exception e) {
-        e.printStackTrace();
-    }</pre>
-
-<p>Similarly following code fragments show client side code for
-echoStringArray operation and echoStruct operation respectively.</p>
-
-<h4><a name="Client_for_echoStringArray_Operation">Client for echoStringArray
-Operation</a></h4>
-<pre>try {
-     //Create the stub by passing the AXIS_HOME and target EPR.
-     //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
-     Axis2SampleDocLitPortTypeStub stub = new Axis2SampleDocLitPortTypeStub(null,
-                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
-
-     //Create the request document to be sent.
-     EchoStringArrayParamDocument reqDoc = EchoStringArrayParamDocument.Factory.newInstance();
-     ArrayOfstringLiteral paramArray = ArrayOfstringLiteral.Factory.newInstance();
-
-     paramArray.addString("Axis2");
-     paramArray.addString("Echo");
-
-      reqDoc.setEchoStringArrayParam(paramArray);
-      EchoStringArrayReturnDocument resDoc = stub.echoStringArray(reqDoc);
-
-      //Get the response params
-      String[] resParams = resDoc.getEchoStringArrayReturn().getStringArray();
-
-      for (int i = 0; i &lt; resParams.length; i++) {
-           System.out.println(resParams[i]);
-      }
-      } catch (Exception e) {
-        e.printStackTrace();
-      }</pre>
-
-<h4><a name="Client_for_echoStruct_Operation">Client for echoStruct
-Operation</a></h4>
-<pre>try {
-    //Create the stub by passing the AXIS_HOME and target EPR.
-    //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
-    Axis2SampleDocLitPortTypeStub stub = new Axis2SampleDocLitPortTypeStub(null, 
-                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
-    //Create the request Document
-    EchoStructParamDocument reqDoc = EchoStructParamDocument.Factory.newInstance();
-
-    //Create the complex type
-    SOAPStruct reqStruct = SOAPStruct.Factory.newInstance();
-
-    reqStruct.setVarFloat(100.50F);
-    reqStruct.setVarInt(10);
-    reqStruct.setVarString("High");
-
-    reqDoc.setEchoStructParam(reqStruct);
-
-    //Service invocation
-    EchoStructReturnDocument resDoc = stub.echoStruct(reqDoc);
-    SOAPStruct resStruct = resDoc.getEchoStructReturn();
-
-    System.out.println("floot Value :" + resStruct.getVarFloat());
-    System.out.println("int Value :" + resStruct.getVarInt());
-    System.out.println("String Value :" + resStruct.getVarString());
-
-} catch (Exception e) {
-    e.printStackTrace();
-}</pre>
-
-<p align="right"><a href="userguide2.html"><img src="images/arrow_left.gif">
-Previous</a> | <a href="userguide4.html">Next <img
-src="images/arrow_right.gif"></a></p>
-
-<p>Pages: <a href="userguide.html">Content</a>, <a
-href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <b>3</b>, <a
-href="userguide4.html">4</a>, <a href="userguide5.html">5</a></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+      "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+  <title>Axis2 User's Guide</title>
+</head>
+
+<body lang="en-US" dir="ltr">
+<h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
+
+<p><i>Axis2 Version 0.95</i></p>
+
+<p><i>User Feedback: <a
+href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>. Prefix
+subject with [Axis2]. To subscribe to mailing list see <a
+href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>
+
+<p align="right">Pages: <a href="userguide.html">Content</a>, <a
+href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <b>3</b>, <a
+href="userguide4.html">4</a>, <a href="userguide5.html">5</a></p>
+
+<p><b><font size="4">Note (on samples):</font></b> In this page of the user's
+guide we will look at how to write Web Service Clients using Axis2. All the
+user's guide samples are located at the <b><font
+color="#000000">"samples/userguide/src"</font></b> directory of the binary
+distribution. So... let's explore the samples.</p>
+
+<h2><a name="Web_Service_Clients_Using_Axis2">Web Service Clients Using
+Axis2</a></h2>
+
+<p>Now let's see how we can write a Web Service Client to use this Web
+Service.</p>
+
+<p>Web services can be used to provide wide range of functionality to the
+users ranging from simple, less time consuming  operations such as
+"getStockQuote"  to time consuming business services. When we utilize (invoke
+using client applications) these Web Service we cannot use some simple
+generic invocation paradigm that suites all the timing complexities involved
+in the service operations. For example, if we use a single transport channel
+(such as HTTP) to invoke a Web Service with and IN-OUT operation that take
+long time to complete, then most of the time we may end up with "connection
+time outs". On the other hand, if there are simultaneous service invocations
+that  we need to perform from a single client application, then the use of a
+"blocking" client API will degrade the performance of the client application.
+Similarly there are various other consequences such as One-Way transports
+that come in to play when we need them. Let's try to analyze some common
+service invocation paradigms.</p>
+
+<p>Many Web service engines provide the users with a Blocking and
+Non-Blocking client APIs.</p>
+<ul>
+  <li><p style="margin-bottom: 0in"><b>Blocking API</b> -Once the service
+    invocation is called, the client application hangs and only gets control
+    back when the operation completes, after which client receives a response
+    or a fault. This is the simplest way of invoking Web Services and it also
+    suites many business situations.</p>
+  </li>
+  <li><p><b>Non-Blocking API </b>- This is a callback or polling based API,
+    hence once a service invocation is called, the client application
+    immediately gets the control back and the response is retrieved using the
+    callback object provided. This approach provides the flexibility to the
+    client application to invoke several Web Services simultaneously without
+    blocking the operation already invoked.</p>
+  </li>
+</ul>
+
+<p>Both these mechanisms work in the API level. Let's name the  asynchronous
+behavior that we can get using the <strong>Non-Blocking API</strong> as
+<b>API Level Asynchrony.</b></p>
+
+<p>Both these mechanisms use single transport connection to send the request
+and to receive the response. They severely lags the capability of using two
+transport connections for the request and the response (either One-Way of
+Two-Way). So both these mechanisms fail to address the problem of long
+running transactions (the transport connection may time-out before the
+operation completes). A possible solution would be to use <strong>two
+separate transport connections for request and response</strong>. The
+asynchronous behavior that we gain using this solution can be called
+<b>Transport Level Asynchrony</b>.</p>
+
+<p>By combining API Level Asynchrony &amp; Transport Level Asynchrony we can
+obtain four different invocation patterns for Web services as shown in the
+following table.</p>
+<a name="table1"></a>
+
+<table width="100%" border="1" cellpadding="0" cellspacing="0">
+  <tbody>
+    <tr>
+      <td width="33%" height="19"><p><strong>API
+        (Blocking/Non-Blocking)</strong></p>
+      </td>
+      <td width="33%"><p><strong> Dual Transports (Yes/No)</strong></p>
+      </td>
+      <td width="33%"><p><strong>Description</strong></p>
+      </td>
+    </tr>
+    <tr>
+      <td width="33%" height="19"><p>Blocking</p>
+      </td>
+      <td width="33%"><p>No</p>
+      </td>
+      <td width="33%"><p>Simplest and the familiar invocation pattern</p>
+      </td>
+    </tr>
+    <tr>
+      <td width="33%" height="19"><p>Non-Blocking</p>
+      </td>
+      <td width="33%"><p>No</p>
+      </td>
+      <td width="33%"><p>Using callbacks or polling</p>
+      </td>
+    </tr>
+    <tr>
+      <td width="33%" height="19"><p>Blocking</p>
+      </td>
+      <td width="33%"><p>Yes</p>
+      </td>
+      <td width="33%"><p>This is useful when the service operation is IN-OUT
+        in nature but the transport used is One-Way (e.g. SMTP)</p>
+      </td>
+    </tr>
+    <tr>
+      <td width="33%" height="19"><p>Non-Blocking</p>
+      </td>
+      <td width="33%"><p>Yes</p>
+      </td>
+      <td width="33%"><p>This is can be used to gain the maximum asynchronous
+        behavior. No blocking in the API level and also in the transport
+        level</p>
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+<p>Axis2 provides the user with all these possibilities to invoke Web
+Services.</p>
+
+<p>Below we describe how to write Web Services Clients using Axis2. This can
+be done in two methods:</p>
+<ol>
+  <li><a href="#Writing_Web_Service_Clients_using_Axis2's_Primary_APIs">Using
+    the Axis2's primary APIs</a></li>
+  <li><p><a
+    href="#Writing_Web_Service_Clients_using_Code_Generation_with_Data_Binding_Support">Using
+    stubs generated with data binding support</a>, making the life easy for
+    developers writing Web Service client applications</p>
+  </li>
+</ol>
+
+<h3><a name="Writing_Web_Service_Clients_using_Axis2's_Primary_APIs">Writing
+Web Service Clients Using Axis2's Primary APIs</a></h3>
+
+<h4><a name="EchoBlockingClient">EchoBlockingClient</a></h4>
+
+<p>Axis2 provides the user with several invocation patterns for Web Services,
+ranging from pure blocking single channel invocations to a non-blocking dual
+channel invocations. Let's first see how we can write a client to invoke
+"echo" operation of "MyService" using the simplest blocking invocation. The
+client code you need to write is as follows.</p>
+<source><pre>  try {
+            OMElement payload = ClientUtil.getEchoOMElement();
+            <span style="color: #24C113">            
+            Options options = new Options();
+            options.setTo(targetEPR); // this sets the location of MyService service
+            
+            ServiceClient serviceClient = new ServiceClient();
+            serviceClient.setOptions(options);
+
+            OMElement result = sender.sendReceive(payload);
+            </span>
+            System.out.println(result);
+
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+        } 
+}</pre>
+</source>
+<p>The green lines shows the set of operations that you need to perform in
+order to invoke a Web service. The rest is used to create the OMElement that
+needs to be sent and display the response OMElement. To test this client, use
+the provided ant build file that can be found in the "Axis2Home/samples"
+directory. Run the "testEchoBlockingClient" target . If you can see the
+response OMElement printed in your command line,  then you have successfully
+tested the client. </p>
+
+<h4><a name="PingClient">PingClient</a></h4>
+
+<p>In the Web Service "MyService" we had an IN-ONLY operation with the name
+"ping" (see <a href="userguide2.html#Web_Services_Using_Axis2">Web Services
+Using Axis2</a>). Let's write a client to invoke this operation. The client
+code is as follows:</p>
+<pre> try {
+       OMElement payload = ClientUtil.getPingOMElement();
+       Options options = new Options();
+       options.setTo(targetEPR);
+       ServiceClient serviceClient = new ServiceClient();
+       serviceClient.setOptions(options);
+       serviceClient.fireAndForget(payload);
+        /**
+         * We have to bock this thread untill we send the request , the problem
+         * is if we go out of the main thread , then request wont send ,so
+         * you have to wait some time :)
+         */
+       Thread.sleep(500);
+     } 
+catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+     }</pre>
+
+<p>Since we are accessing an IN-ONLY operation we can directly use the
+"fireAndForget()" in ServiceClient to invoke this operation , and that will
+not block the invocation, hence it will return the control immediately back
+to the client. You can test this client by running the target
+"testPingClient" of the ant build file at "Axis2Home/samples".</p>
+
+<p>We have invoked the two operations in our service. Are we done? No! There
+are lot more to explore. Let's see some other ways to invoke the same
+operations...</p>
+
+<h4><a name="EchoNonBlockingClient">EchoNonBlockingClient</a></h4>
+
+<p>In the EchoBlockingClient once the "serviceCleint.sendReceive(payload);"
+is called, the client is blocked till the operation is completed. This
+behavior is not desirable when there are many Web service invocations to be
+done in a single client application or within a GUI. A solution would be to
+use a Non-Blocking API to invoke Web services. Axis2 provides a callback
+based non-blocking API for users.</p>
+
+<p>A sample client for this can be found under
+"Axis2Home/samples/userguide/src/userguide/clients" with the name
+EchoNonBlockingClient. If we consider the changes that user may have to do
+with respect to the "EchoBlockingClient" that we have already seen, it will
+be as follows:</p>
+<pre style="margin-bottom: 0.2in">serviceClient.sendReceiveNonblocking(payload, callback);</pre>
+
+<p>The invocation accepts a callback object as a parameter. Axis2 client API
+provides an abstract Callback with the following methods:</p>
+<pre>public abstract void onComplete(AsyncResult result);
+public abstract void onError(Exception e);
+public boolean isComplete() {}</pre>
+
+<p>The user is expected to implement the "onComplete " and "onError " methods
+of their extended call back class. Axis2 engine calls the onComplete method
+once the Web Service response is received by the Axis2 Client API
+(ServiceClient). This will eliminate the blocking nature of the Web Service
+invocations and provides the user with the flexibility to use Non Blocking
+API for Web Service Clients.</p>
+
+<p>To run the sample client ( EchoNonBlockingClient) you can simply use the
+"testEchoNonBlockingClient" target of the ant file found at the
+"Axis2Home/samples" directory.</p>
+
+<h4><a name="EchoNonBlockingDualClient">EchoNonBlockingDualClient</a></h4>
+
+<p>The solution provided by the Non-Blocking API has one limitation when it
+comes to  Web Service invocations which takes long time to complete. The
+limitation is due to the use of single transport connection to invoke the Web
+Service and to retrieve the response. In other words, client API provides a
+non blocking invocation mechanism for the users, but the request and the
+response comes in a single transport (Two-Way transport) connection (like
+HTTP). Long running Web Service invocations or Web Service invocations using
+One-Way transports (like SMTP) cannot be utilized by simply using a non
+blocking invocation. </p>
+
+<p>The trivial solution is to use separate transport connections (either
+One-Way or Two-Way) for the request and response. The next problem that needs
+to be solved is the correlation (correlating the request and the response).
+<a href="http://www.w3.org/2002/ws/addr/" target="_blank">WS-Addressing</a>
+provides a neat solution to this using &lt;wsa:MessageID&gt; and
+&lt;wsa:RelatesTo&gt; headers. Axis2 provides support for addressing  based
+correlation mechanism and a complying Client API to invoke Web Services with
+two transport connections. (Core of Axis2 does not depend on WS-Addressing,
+but contains a set of parameters like in addressing that can be populated in
+any means. WS-Addressing is one of the users that may populate them. Even the
+transports can populate these. Hence Axis2 has the flexibility to use
+different versions of addressing)</p>
+
+<p>Users can select between Blocking or Non-Blocking APIs for the Web Service
+clients with two transport connections. By simply using a boolean flag, the
+same API can be used to invoke Web services (IN-OUT operations) using two
+separate transport connections. Let's see how it's done using an example.
+Following code fragment shows how to invoke the same "echo" operation using
+Non-Blocking API with two transport connections<strong>. The ultimate
+asynchrony!!</strong></p>
+<pre>  try {
+            OMElement payload = ClientUtil.getEchoOMElement();
+            Options options = new Options();<br>            options.setTo(targetEPR);  
+
+            //The boolean flag informs the axis2 engine to use two separate transport connection
+            //to retrieve the response.
+<br>            options.setUseSeparateListener(true);
+               options.setAction("urn:echo"); // this is the action mapping we put within the service.xml
+            
+            ServiceClient serviceClient = new ServiceClient();
+<br>        serviceClient.setOptions(options);</pre>
+<pre>                  
+            //Callback to handle the response
+            Callback callback = new Callback() {
+                public void onComplete(AsyncResult result) {
+                    System.out.println(result.getResponseEnvelope());
+                }
+
+                public void onError(Exception e) {
+                    e.printStackTrace();
+                }
+            };
+
+            //Non-Blocking Invocation
+            serviceClient.sendReceiveNonBlocking(payload, callback);
+
+            //Wait till the callback receives the response.
+            while (!callback.isComplete()) {
+                Thread.sleep(1000);
+            }
+            serviceClient.finalizeInvoke();
+
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }</pre>
+
+<p><font color="#0000ff"><font color="#000000">The boolean flag (value true)
+in the "<b>options.setUseSeparateListener(...)</b>" method informs the Axis2
+engine to use separate transport connections for request and response.
+Finally "<b>serviceClinet.finalizeInvoke()</b>" informs the Axis2 engine to
+stop the client side listener started to retrieve the
+response.</font></font></p>
+
+<p>Before we run the sample client we have one more step to perform. As
+mentioned earlier Axis2 uses addressing based correlation mechanism, hence we
+need to "engage" addressing module in the server side as well. According to
+the Axis2 architecture, addressing module put its handlers in the
+"<strong>pre-dispatch</strong>" phase (See <a
+href="Axis2ArchitectureGuide.html" target="_blank">Architecture Guide</a> for
+more details about phases)  and hence "engaging" means simply adding module
+reference in the "axis2.xml" (NOT the "services.xml"). Now add the following
+line to the "axis2.xml" that you can find in the "/webapps/axis2/WEB-INF"
+directory in the servlet container. </p>
+<pre style="margin-bottom: 0.2in"> &lt;module ref="addressing"/&gt;</pre>
+
+<p>Note: <font color="#000000">Once you change the "axis2.xml" you need to
+restart the servlet container.</font></p>
+
+<p>This will enable the addressing in the server side. Now you can test the
+"TestEchoNonBlockingDualClient" using the "testEchoNonBlockingDualClient"
+target of the ant file found at "Axis2Home/samples" directory. If you see the
+response OMElement printed in the client side, then you have successfully
+tested the Non Blocking API with two transport channels at the client
+side.</p>
+
+<h4><a name="EchoBlockingDualClient">EchoBlockingDualClient</a></h4>
+
+<p>This is again a Two-Way transport request/response client, but this time,
+we use a Blocking API in the client code. Sample code for this can be found
+in the "Axis2Home/samples/userguide/src/userguide/clients/" directory and the
+explanation is similar to the <a
+href="#EchoNonBlockingDualClient">EchoNonBlockingDualClient</a>, except that
+here we do not use a callback object to handle response. This is a very
+useful mechanism when the service invocation is IN-OUT in nature and the
+transports are One-Way (e.g. SMTP). For the sample client we use two HTTP
+connections for request and response. User can test this client using the
+"echoBlockingDualClient" target of the ant build file found in the
+"Axis2Home/samples" directory.</p>
+
+<p>See <a href="http-transport.html" target="_blank">Configuring
+Transports</a> for use different transports.</p>
+
+<h3><a
+name="Writing_Web_Service_Clients_using_Code_Generation_with_Data_Binding_Support">Writing
+Web Service Clients using Code Generation with Data Binding Support</a></h3>
+
+<p>Axis2 provides the data binding support for Web Service client as well.
+The user can generate the required stubs from a given WSDL with the other
+supporting classes. Let's generate stubs for the WSDL used earlier to
+generate the skeleton for the "Axis2SampleDocLitPortType". Simply run the
+WSDL2Java tool that can be found in the bin directory of the Axis2
+distribution using the following command:</p>
+<pre style="margin-bottom: 0.2in">WSDL2Java -uri ..\samples\wsdl\Axis2SampleDocLit.wsdl -o ..\samples\src -p org.apache.axis2.userguide</pre>
+
+<p>This will generate the required stub "Axis2SampleDocLitPortTypeStub.java"
+that can be used to invoke the Web Service Axis2SampleDocLitPortType. Let's
+see how we can use this stub to write Web Service clients to utilize the Web
+Service Axis2SampleDocLitPortType (the service that we have already
+deployed).</p>
+
+<h4><a name="Client_for_echoVoid_Operation">Client for echoVoid
+Operation</a></h4>
+
+<p>Following code fragment shows the necessary code for utilizing the
+echoVoid operation of the Axis2SampleDocLitPortType that we have already
+deployed. In this operation, a blank SOAP body element is sent to the Web
+Service and the same SOAP envelope is echoed back.</p>
+<pre> try {
+   //Create the stub by passing the AXIS_HOME and target EPR.
+   //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
+   Axis2SampleDocLitPortTypeStub stub = new Axis2SampleDocLitPortTypeStub(null, 
+                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
+   stub.echoVoid();
+
+} catch (Exception e) {
+    e.printStackTrace();
+}</pre>
+
+<h4><a name="Client_for_echoString_Operation">Client for echoString
+Operation</a></h4>
+
+<p>Following code fragment shows the necessary code for utilizing the
+echoString operation of the Axis2SampleDocLitPortType that we have already
+deployed. The code is very simple to understand and the explanations are in
+the form of comments.</p>
+<pre>try {
+     //Create the stub by passing the AXIS_HOME and target EPR.
+     //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME 
+     Axis2SampleDocLitPortTypeStub stub= new Axis2SampleDocLitPortTypeStub(null,
+                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
+     //Create the request document to be sent.
+     EchoStringParamDocument  reqDoc= EchoStringParamDocument.Factory.newInstance();
+     reqDoc.setEchoStringParam("Axis2 Echo");
+     //invokes the Web service.
+     EchoStringReturnDocument resDoc=stub.echoString(reqDoc);
+     System.out.println(resDoc.getEchoStringReturn());
+
+    } catch (Exception e) {
+        e.printStackTrace();
+    }</pre>
+
+<p>Similarly following code fragments show client side code for
+echoStringArray operation and echoStruct operation respectively.</p>
+
+<h4><a name="Client_for_echoStringArray_Operation">Client for echoStringArray
+Operation</a></h4>
+<pre>try {
+     //Create the stub by passing the AXIS_HOME and target EPR.
+     //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
+     Axis2SampleDocLitPortTypeStub stub = new Axis2SampleDocLitPortTypeStub(null,
+                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
+
+     //Create the request document to be sent.
+     EchoStringArrayParamDocument reqDoc = EchoStringArrayParamDocument.Factory.newInstance();
+     ArrayOfstringLiteral paramArray = ArrayOfstringLiteral.Factory.newInstance();
+
+     paramArray.addString("Axis2");
+     paramArray.addString("Echo");
+
+      reqDoc.setEchoStringArrayParam(paramArray);
+      EchoStringArrayReturnDocument resDoc = stub.echoStringArray(reqDoc);
+
+      //Get the response params
+      String[] resParams = resDoc.getEchoStringArrayReturn().getStringArray();
+
+      for (int i = 0; i &lt; resParams.length; i++) {
+           System.out.println(resParams[i]);
+      }
+      } catch (Exception e) {
+        e.printStackTrace();
+      }</pre>
+
+<h4><a name="Client_for_echoStruct_Operation">Client for echoStruct
+Operation</a></h4>
+<pre>try {
+    //Create the stub by passing the AXIS_HOME and target EPR.
+    //We pass null to the AXIS_HOME and hence the stub will use the current directory as the AXIS_HOME
+    Axis2SampleDocLitPortTypeStub stub = new Axis2SampleDocLitPortTypeStub(null, 
+                                "http://localhost:8080/axis2/services/Axis2SampleDocLitPortType");
+    //Create the request Document
+    EchoStructParamDocument reqDoc = EchoStructParamDocument.Factory.newInstance();
+
+    //Create the complex type
+    SOAPStruct reqStruct = SOAPStruct.Factory.newInstance();
+
+    reqStruct.setVarFloat(100.50F);
+    reqStruct.setVarInt(10);
+    reqStruct.setVarString("High");
+
+    reqDoc.setEchoStructParam(reqStruct);
+
+    //Service invocation
+    EchoStructReturnDocument resDoc = stub.echoStruct(reqDoc);
+    SOAPStruct resStruct = resDoc.getEchoStructReturn();
+
+    System.out.println("floot Value :" + resStruct.getVarFloat());
+    System.out.println("int Value :" + resStruct.getVarInt());
+    System.out.println("String Value :" + resStruct.getVarString());
+
+} catch (Exception e) {
+    e.printStackTrace();
+}</pre>
+
+<p align="right"><a href="userguide2.html"><img src="images/arrow_left.gif">
+Previous</a> | <a href="userguide4.html">Next <img
+src="images/arrow_right.gif"></a></p>
+
+<p>Pages: <a href="userguide.html">Content</a>, <a
+href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <b>3</b>, <a
+href="userguide4.html">4</a>, <a href="userguide5.html">5</a></p>
+</body>
+</html>

Modified: webservices/axis2/trunk/java/xdocs/0_95/userguide4.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/0_95/userguide4.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/0_95/userguide4.html (original)
+++ webservices/axis2/trunk/java/xdocs/0_95/userguide4.html Wed Apr 26 04:43:28 2006
@@ -4,15 +4,18 @@
 <head>
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
   <title>Axis2 User's Guide</title>
-  <meta name="generator" content="amaya 9.3, see http://www.w3.org/Amaya/">
+  <meta name="generator" content="amaya 9.2.1, see http://www.w3.org/Amaya/">
 </head>
 
 <body lang="en-US" dir="ltr">
 <h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
 
-<p><i>Version 0.95</i></p>
-<i>User Feedback: <a
-href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>
+<p><i>-Axis2 Version 0.95</i></p>
+
+<p><i>User Feedback: <a
+href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>. Prefix
+subject with [Axis2]. To subscribe to mailing list see <a
+href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>
 
 <p align="right">Pages: <a href="userguide.html">Content</a>, <a
 href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <a

Modified: webservices/axis2/trunk/java/xdocs/0_95/userguide5.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/0_95/userguide5.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/0_95/userguide5.html (original)
+++ webservices/axis2/trunk/java/xdocs/0_95/userguide5.html Wed Apr 26 04:43:28 2006
@@ -1,85 +1,87 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-      "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
-  <title>Axis2 User's Guide</title>
-  <meta name="generator" content="amaya 9.2.1, see http://www.w3.org/Amaya/">
-</head>
-
-<body lang="en-US" dir="ltr">
-<h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
-
-<p><i>Version 0.95</i></p>
-<i>User Feedback: <a
-href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>
-
-<p align="right">Pages: <a href="userguide.html">Content</a>, <a
-href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <a
-href="userguide3.html">3</a>, <a href="userguide4.html">4</a>,
-<b>5</b></p>
-
-<p><font size="4"><b>Note (on samples):</b></font> All the user's guide
-samples are located in the <b>"samples/userguide/src"</b> directory of the
-binary distribution.</p>
-
-<h2><a name="Other_Samples">Other Samples</a></h2>
-
-<p>To show the power of usage of Axis2, three standard samples are shipped
-with the binary distribution. These are meant to interact with outside web
-services and prove the capabilities of the Axis2 system.</p>
-
-<p>The included samples are</p>
-<ul>
-  <li><style="margin-bottom: 0in">Google spell checker sample</li>
-  <li><p style="margin-bottom: 0in">Google search sample</p>
-  </li>
-  <li><p style="margin-bottom: 0in">Amazon queuing sample</p>
-  </li>
-</ul>
-
-<p>A simple introduction to each of the above samples are given below. Each
-sample contains it's own help document that speaks about  the usage and the
-advanced operations of that particular sample.</p>
-
-<p>The most obvious place to look for the samples are the binary
-distribution. All these samples are included in the samples directory in the
-binary distribution. The shell scripts and the batch files are in fact
-written to use the binary distribution's root directory as the home in order
-to find the libraries.</p>
-
-<p>The alternate method is to build the samples from source. Moving to the
-modules/samples and running maven will create the samples in the
-target/samples directory. However if the samples need to be started using the
-shell scripts (or the batch files) then the AXIS_HOME environment need to be
-set.( the "guessed" AXIS_HOME would not be correct in this case)</p>
-
-<h3><a name="Google_Spell_Checker_Sample">Google Spell Checker Sample</a></h3>
-
-<p>This includes a spell checker program that uses the Google spell checking
-service. It demonstrates the blocking and non-blocking modes of calling the
-service. This sample can be found at the samples\googleSpellcheck directory
-and can be easily started using either the batch file or the shell script.</p>
-
-<h3><a name="Google_Search_Sample">Google Search Sample</a></h3>
-
-<p>This includes a search program that uses the familiar Google search over
-the SOAP API. It utilizes the non-blocking mode of the client API. This
-sample can be found at the samples\googleSearch directory and can be easily
-started using either the batch file or the shell script.</p>
-
-<h3><a name="Amazon_Queuing_Service">Amazon Queuing Service</a></h3>
-
-<p>Amazon queuing service sample shows how to use the Amazon queuing service.
-It has two user interfaces , one to enqueue and the other dequeue. This
-sample is included in the samples\amazonQS directory and also contains the
-batch/shell scripts required to run sample.</p>
-
-<p align="right"><a href="userguide4.html"><img src="images/arrow_left.gif">
-Previous Page</a></p>
-
-<p>Pages: <a href="userguide.html">Content</a>, <a
-href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <a
-href="userguide3.html">3</a>, <a href="userguide4.html">4</a>, <b>5</b></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+      "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+  <title>Axis2 User's Guide</title>
+  <meta name="generator" content="amaya 9.2.1, see http://www.w3.org/Amaya/">
+</head>
+
+<body lang="en-US" dir="ltr">
+<h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
+
+<p><i>-Axis2 Version 0.95</i></p>
+
+<p><i>User Feedback: <a
+href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>. Prefix
+subject with [Axis2]. To subscribe to mailing list see <a
+href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>
+
+<p align="right">Pages: <a href="userguide.html">Content</a>, <a
+href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <a
+href="userguide3.html">3</a>, <a href="userguide4.html">4</a>, <b>5</b></p>
+
+<p><font size="4"><b>Note (on samples):</b></font> All the user's guide
+samples are located in the <b>"samples/userguide/src"</b> directory of the
+binary distribution.</p>
+
+<h2><a name="Other_Samples">Other Samples</a></h2>
+
+<p>To show the power of usage of Axis2, three standard samples are shipped
+with the binary distribution. These are meant to interact with outside Web
+services and prove the capabilities of the Axis2 system.</p>
+
+<p>The included samples are</p>
+<ul>
+  <li><style="margin-bottom: 0in">Google spell checker sample</li>
+  <li><p style="margin-bottom: 0in">Google search sample</p>
+  </li>
+  <li><p style="margin-bottom: 0in">Amazon queuing sample</p>
+  </li>
+</ul>
+
+<p>A simple introduction to each of the above samples are given below. Each
+sample contains it's own help document that speaks about  the usage and the
+advanced operations of that particular sample.</p>
+
+<p>The most obvious place to look for the samples are the binary
+distribution. All these samples are included in the samples directory in the
+binary distribution. The shell scripts and the batch files are in fact
+written to use the binary distribution's root directory as the home in order
+to find the libraries.</p>
+
+<p>The alternate method is to build the samples from source. Moving to the
+modules/samples and running maven will create the samples in the
+target/samples directory. However if the samples need to be started using the
+shell scripts (or the batch files) then the AXIS_HOME environment need to be
+set.( the "guessed" AXIS_HOME would not be correct in this case)</p>
+
+<h3><a name="Google_Spell_Checker_Sample">Google Spell Checker Sample</a></h3>
+
+<p>This includes a spell checker program that uses the Google spell checking
+service. It demonstrates the blocking and non-blocking modes of calling the
+service. This sample can be found at the samples\googleSpellcheck directory
+and can be easily started using either the batch file or the shell script.</p>
+
+<h3><a name="Google_Search_Sample">Google Search Sample</a></h3>
+
+<p>This includes a search program that uses the familiar Google search over
+the SOAP API. It utilizes the non-blocking mode of the client API. This
+sample can be found at the samples\googleSearch directory and can be easily
+started using either the batch file or the shell script.</p>
+
+<h3><a name="Amazon_Queuing_Service">Amazon Queuing Service</a></h3>
+
+<p>Amazon queuing service sample shows how to use the Amazon queuing service.
+It has two user interfaces , one to enqueue and the other dequeue. This
+sample is included in the samples\amazonQS directory and also contains the
+batch/shell scripts required to run sample.</p>
+
+<p align="right"><a href="userguide4.html"><img src="images/arrow_left.gif">
+Previous Page</a></p>
+
+<p>Pages: <a href="userguide.html">Content</a>, <a
+href="userguide1.html">1</a>, <a href="userguide2.html">2</a>, <a
+href="userguide3.html">3</a>, <a href="userguide4.html">4</a>, <b>5</b></p>
+</body>
+</html>

Modified: webservices/axis2/trunk/java/xdocs/index.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/index.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/index.html (original)
+++ webservices/axis2/trunk/java/xdocs/index.html Wed Apr 26 04:43:28 2006
@@ -16,6 +16,7 @@
 
 
 
+
   </style>
 </head>
 
@@ -100,7 +101,7 @@
     corresponding service using generated client</li>
   <li>WSDL fault handling (fault code generation)</li>
   <li>SOAP 1.2 and HTTP binding generation (?wsdl)</li>
-  <li>Streaming Attachments support for MTOM (SOAP Message Transamission
+  <li>Streaming Attachments support for MTOM (SOAP Message Transmission
     Optimization Mechanism)</li>
 </ol>
 

Modified: webservices/axis2/trunk/java/xdocs/latest/WS_policy.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/WS_policy.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/WS_policy.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/WS_policy.html Wed Apr 26 04:43:28 2006
@@ -11,8 +11,22 @@
 <h1 align="center">Web Services Policy Support In Axis2</h1>
 
 <p><em>-Axis2 version 1.0</em></p>
-<i>E-mail comments/ suggestions to: <a
-href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>
+
+<p>This document will give you an introduction to the role of Web services
+policy in Axis2. </p>
+
+<p><i>E-mail comments/ suggestions to: <a
+href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>. Prefix
+subject with [Axis2]. To subscribe to mailing list see <a
+href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="#intro">What is Web Services (WS) Policy?</a></li>
+  <li><a href="#archi">Client Side WS-Policy Support</a></li>
+  <li><a href="#code_depend">Server Side WS-Policy Support</a></li>
+  <li><a href="#code_gen">References</a></li>
+</ul>
 
 <h2>What is Web Services (WS) Policy?</h2>
 
@@ -143,8 +157,8 @@
 
 <h2>Resources</h2>
 <ul>
-  <li>Apache WS-Commons Policy Implementaion official site- <a
-    href="http://ws.apache.org/commons/policy/index.html"
+  <li>Apache WS-Commons Policy Implementaion or Apache Neethi official site-
+    <a href="http://ws.apache.org/commons/policy/index.html"
     target="_blank">Home Page</a></li>
   <li>Sanka Samaranayake, March 2006. <a href="" target="_blank">Web services
     Policy - Why, What &amp; How</a></li>

Modified: webservices/axis2/trunk/java/xdocs/latest/index.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/index.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/index.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/index.html Wed Apr 26 04:43:28 2006
@@ -49,12 +49,20 @@
   <li><a href="mtom-guide.html">MTOM Guide -Sending Binary Data with SOAP</a>
     -Describes sending binary data using SOAP Message Transmission
     Optimization Mechanism</li>
-  <li><a href="axis2config.html">Axis2 Configuration Guide</a>-Explains the
-    three configurations-global, service and module in Axis2 </li>
+  <li><a>Axis2 Configuration Guide</a>-Explains the three
+    configurations-global, service and module in Axis2</li>
   <li><a href="api/index.html">Online Java Docs</a></li>
-  <li><a href="adb/adb-howto.html">ADB How-to</a></li>
-  <li><a href="security-module.html">WS-Security How-to</a></li>
-  <li><a href="WS_policy.html">Web Services Policy Support In Axis2</a></li>
+  <li><a href="adb/adb-howto.html">ADB How-to</a>-Guide on Axis2 Databinding
+    Framework</li>
+  <li><a href="adb/adb-tweaking.html">Tweaking the ADB Code
+    Generator</a>-Explains available mechanisms to extend ADB</li>
+  <li><a href="adb/adb-codegen-integration.html">ADB Integration with
+    Axis2</a> -Guide to writing an extension using the integrator in order to
+    integrate ADB with Axis2</li>
+  <li><a href="security-module.html">WS-Security How-to</a> -Guide to
+    engaging and configuring WSS4J security module</li>
+  <li><a href="WS_policy.html">Web Services Policy Support In Axis2</a>
+    -Introdcution to the role of Web services policy in Axis2</li>
   <li><a href="soapmonitor-module.html">SOAP Monitor How-to</a></li>
   <li><a href="tcp-transport.html">TCP Transport</a></li>
   <li><a href="mail-transport.html">Mail Transport</a></li>
@@ -72,8 +80,9 @@
     href="http://www.developer.com/services/article.php/3525481">Introducing
     Axis2, the Next Generation of the Apache Web Service Stack</a> by Srinath
     Perera</li>
-  <li><a>Web Services Messaging with Apache Axis2: Concepts and
-    Techniques</a> by Srinath Perera, Ajith Ranabahu</li>
+  <li><a href="http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html">Web
+    Services Messaging with Apache Axis2: Concepts and Techniques</a> by
+    Srinath Perera, Ajith Ranabahu</li>
   <li><a href="http://developer.com/java/web/article.php/3529321">Axis2
     Execution Framework</a> by Deepal Jayasinghe</li>
   <li><a

Modified: webservices/axis2/trunk/java/xdocs/latest/security-module.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/security-module.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/security-module.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/security-module.html Wed Apr 26 04:43:28 2006
@@ -9,8 +9,20 @@
 <h1>Securing SOAP Messages with WSS4J</h1>
 
 <p>Axis2 comes with a module based on WSS4J [1] to provide WS-Security
-features. This section explains how to engage and configure the security
-module. Since the security module inserts handlers in the system specific
+features. This document explains how to engage and configure the security
+module.</p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="#intro">Introduction</a></li>
+  <li><a href="#outflowsecurity">OutflowSecurity Parameter</a></li>
+  <li><a href="#inflowsecurity">InflowSecurity Parameter</a></li>
+  <li><a href="#references">References</a></li>
+  <li><a href="#examples">Examples</a></li>
+</ul>
+<a name="intro"></a>
+<h2>Introduction</h2>
+<p>Since the security module inserts handlers in the system specific
 pre-dispatch phase, it must be engaged globally. But it is possible to
 activate the security module for the inflow or the outflow when required by
 the service or the clients.</p>
@@ -35,8 +47,8 @@
   <li>InflowSecurity</li>
 </ul>
 The configuration that can go in each of these parameters are described below:
-
-<h3>OutflowSecurity parameter</h3>
+<a name="outflowsecurity"></a>
+<h2>OutflowSecurity Parameter</h2>
 This parameter is used to configure the outflow security handler. The outflow
 handler can be invoked more than once in the outflow one can provide
 configuration for each of these invocations. The 'action' element describes
@@ -139,10 +151,8 @@
     </tr>
   </tbody>
 </table>
-<br>
-
-
-<h3>InflowSecurity parameter</h3>
+<a name="inflowsecurity"></a>
+<h2>InflowSecurity Parameter</h2>
 
 <p>This parameter is used to configure the inflow security handler. The
 'action' element is used to encapsulate the configuration elements here as
@@ -206,15 +216,13 @@
 the org.apache.ws.security.components.crypto.Crypto interface to provide the
 crypto information required by WSS4J. The other properties defined are the
 configuration properties used by the implementation class
-(org.apache.ws.security.components.crypto.Merlin).
-
-<p><b>References</b></p>
-
-<p>1. <a href="http://ws.apache.org/wss4j">Apache WSS4J</a></p>
-<br>
-
-
-<p><b>Examples</b></p>
+(org.apache.ws.security.components.crypto.Merlin). <a name="ref"></a>
+<a name="references"></a>
+<h2>References</h2>
+
+<p>1. <a href="http://ws.apache.org/wss4j">Apache WSS4J -Home</a></p>
+<a name="examples"></a>
+<h2>Examples</h2>
 
 <p id="ex1">Example 1: An outflow configuration to add a timestamp, sing and
 encrypt the message once</p>

Modified: webservices/axis2/trunk/java/xdocs/latest/soapmonitor-module.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/soapmonitor-module.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/soapmonitor-module.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/soapmonitor-module.html Wed Apr 26 04:43:28 2006
@@ -1,40 +1,41 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><title>The SOAP Monitor Module</title>
+<html>
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>The SOAP Monitor Module</title>
+</head>
 
 <body>
 <h1>Using the SOAP Monitor</h1>
 
-<p>Web service developers often have the need to see the SOAP messages being used to invoke web 
-services along with the results of those messages. The goal of the SOAP Monitor utility is to 
-provide a way for these developers to monitor the SOAP messages being used without requiring 
-any special configuration or restarting of the server.
-
-In this utility, a handler has been written and added to the global handler chain. As SOAP 
-requests and responses are received, the SOAP message information is forwarded to a SOAP monitor 
-service where it can be displayed using a web browser interface.
-
-The SOAP message information is accessed with a web browser by going to 
-http://localhost:<port>/axis2/SOAPMonitor (where <port> is the port number where the application 
-server is running).
-
-The SOAP message information is displayed through a web browser by using an applet that opens a 
-socket connection to the SOAP monitor service. This applet requires a Java plug-in 1.3 or 
-higher to be installed in your browser. If you do not have a correct plug-in, the browser should 
-prompt you to install one.
-
-The port used by the SOAP monitor service to comminicate with applets is configurable. Edit the 
-web.xml file for the Axis web application to change the port to be used. </p>
-
-<p>The soap monitor module (soapmonitor.mar) is available in the axis2.war but it is not engaged by
-   default. The SOAP Monitor is NOT enabled by default for security reasons.</p>
-
-<p>The SOAP Monitor can be engaged by inserting the following in the axis2.xml file.</p>
-<source><pre>
-    &lt;module ref="soapmonitor"/&gt;
-</pre></source>
-
-<p>Then in the axis2.xml file define your phase orders for 'soapmonitorPhase' referenced in the
-module.xml of soapmonitor.mar: </p>
+<p>Web service developers often have the need to see the SOAP messages being
+used to invoke Web services along with the results of those messages. The
+goal of the SOAP Monitor utility is to provide a way for these developers to
+monitor the SOAP messages being used without requiring any special
+configuration or restarting of the server. In this utility, a handler has
+been written and added to the global handler chain. As SOAP requests and
+responses are received, the SOAP message information is forwarded to a SOAP
+monitor service where it can be displayed using a Web browser interface. The
+SOAP message information is accessed with a Web browser by going to
+http://localhost:<port>/axis2/SOAPMonitor (where <port>is the port number
+where the application server is running). The SOAP message information is
+displayed through a Web browser by using an applet that opens a socket
+connection to the SOAP monitor service. This applet requires a Java plug-in
+1.3 or higher to be installed in your browser. If you do not have a correct
+plug-in, the browser should prompt you to install one. The port used by the
+SOAP monitor service to comminicate with applets is configurable. Edit the
+web.xml file for the Axis Web application to change the port to be used.</p>
+
+<p>The soap monitor module (soapmonitor.mar) is available in the axis2.war
+but it is not engaged by default. The SOAP Monitor is NOT enabled by default
+for security reasons.</p>
+
+<p>The SOAP Monitor can be engaged by inserting the following in the
+axis2.xml file.</p>
+<source><pre>    &lt;module ref="soapmonitor"/&gt;</pre>
+</source>
+<p>Then in the axis2.xml file define your phase orders for 'soapmonitorPhase'
+referenced in the module.xml of soapmonitor.mar:</p>
 <pre>    &lt;phaseOrder type="inflow"&gt;
         &lt;!--  System pre defined phases       --&gt;
         &lt;phase name="TransportIn"/&gt;
@@ -91,8 +92,8 @@
         &lt;phase name="MessageOut"/&gt;
     &lt;/phaseOrder&gt;</pre>
 
-<p>To configure the servlet to communicate with the applet, add the following to web.xml 
-(the SOAPMonitorPort is configurable) : </p>
+<p>To configure the servlet to communicate with the applet, add the following
+to web.xml (the SOAPMonitorPort is configurable) :</p>
 <pre>&lt;servlet&gt;
        &lt;servlet-name&gt;SOAPMonitorService&lt;/servlet-name&gt;
        &lt;display-name&gt;SOAPMonitorService&lt;/display-name&gt;
@@ -110,15 +111,15 @@
         &lt;servlet-name&gt;SOAPMonitorService&lt;/servlet-name&gt;
         &lt;url-pattern&gt;/SOAPMonitor&lt;/url-pattern&gt;
     &lt;/servlet-mapping&gt;</pre>
-<p>Finally, compile the applet classes and place them at the root of the war - for example
-axis2/SOAPMonitorApplet*.class/WEB-INF : 
-</p>
-<pre>
-javac -classpath axis2-soapmonitor.jar SOAPMonitorApplet.java
-</pre>
-<p>With a web browser, go to http[s]://host[:port][/webapp]/SOAPMonitor (e.g. 
-http://localhost:8080/axis2/SOAPMonitor) substituting the correct values for your web application. This 
-will show the SOAP Monitor applet for viewing service requests and responses. Any requests to services 
-that have been configured and deployed correctly should show up in the applet.
-</p>
-</body></html>
+
+<p>Finally, compile the applet classes and place them at the root of the war
+- for example axis2/SOAPMonitorApplet*.class/WEB-INF :</p>
+<pre>javac -classpath axis2-soapmonitor.jar SOAPMonitorApplet.java</pre>
+
+<p>With a Web browser, go to http[s]://host[:port][/webapp]/SOAPMonitor (e.g.
+http://localhost:8080/axis2/SOAPMonitor) substituting the correct values for
+your Web application. This will show the SOAP Monitor applet for viewing
+service requests and responses. Any requests to services that have been
+configured and deployed correctly should show up in the applet.</p>
+</body>
+</html>

Modified: webservices/axis2/trunk/java/xdocs/latest/userguide.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/userguide.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/userguide.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/userguide.html Wed Apr 26 04:43:28 2006
@@ -9,7 +9,7 @@
 <h1 align="center"><a name="_Toc96697849" id="_Toc96697849">Apache</a> Axis2
 User's Guide</h1>
 
-<p><i>-Axis2 Version 1.0</i></p>
+<p><i>-Axis2 version 1.0</i></p>
 
 <p>This document mainly contains data on how to write Web services &amp; Web
 service clients using Axis2, also creating a custom module and deploying it
@@ -121,7 +121,7 @@
             href="userguide3.html#Client_for_echoString_Operation">Client for
             echoString Operation</a></li>
           <li><a
-            href="userguide3.html#Client_for_echoStringArray_Operation">Cient
+            href="userguide3.html#Client_for_echoStringArray_Operation">Client
             for echoStringArray Operation</a></li>
           <li><a
             href="userguide3.html#Client_for_echoStruct_Operation">Client for

Modified: webservices/axis2/trunk/java/xdocs/latest/userguide1.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/userguide1.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/userguide1.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/userguide1.html Wed Apr 26 04:43:28 2006
@@ -9,12 +9,14 @@
 <h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
 
 <p><i>Version 1.0</i></p>
+
 <p><i>User Feedback: <a
 href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>. Prefix
 subject with [Axis2]. To subscribe to mailing list see <a
 href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>
 
-<p align="right">Pages: <a href="userguide.html">Content</a>, <b>1</b>, <a href="userguide2.html">2</a>, <a href="userguide3.html">3</a>, <a
+<p align="right">Pages: <a href="userguide.html">Content</a>, <b>1</b>, <a
+href="userguide2.html">2</a>, <a href="userguide3.html">3</a>, <a
 href="userguide4.html">4</a>, <a href="userguide5.html">5</a></p>
 
 <h2><a name="Introduction">Introduction</a></h2>
@@ -29,12 +31,13 @@
     Axis2 standard binary distribution. (The standard binary distribution can
     be created from the source distribution using the maven goal <code>$maven
     dist-std-bin</code>). Please refer the <a
-    href="installationguide.html#Download_Axis2">installation guide</a> for further
-    information on the downloadables available in this release.</p>
+    href="installationguide.html#Download_Axis2">installation guide</a> for
+    further information on the downloadables available in this release.</p>
   </li>
   <li><p>If you are new to Axis, it's highly recommended that you read <a
-    href="http://ws.apache.org/axis/java/user-guide.html" target="_blank">Axis 1.x User's
-    Guide</a> before you go any further in this guide.</p>
+    href="http://ws.apache.org/axis/java/user-guide.html"
+    target="_blank">Axis 1.x User's Guide</a> before you go any further in
+    this guide.</p>
   </li>
 </ul>
 
@@ -63,15 +66,15 @@
   </li>
   <li><p style="margin-bottom: 0in"><strong><a name="Hot_Deployment">Hot
     Deployment</a></strong> - Axis2 is equipped with the capability of
-    deploying web service &amp; handlers while system is up and running. In
+    deploying Web service &amp; handlers while system is up and running. In
     other words, new services can be added to the system without having to
     shut down server.Drop the required Web service archive into the services
     directory in the repository and deployment model will automatically
     deploy the service and make it available for use.</p>
   </li>
   <li><p style="margin-bottom: 0in"><strong>Asynchronous Web
-    Services</strong> - Axis2 now supports asynchronous web services &amp;
-    asynchronous web services invocation using non-blocking clients and
+    Services</strong> - Axis2 now supports asynchronous Web services &amp;
+    asynchronous Web services invocation using non-blocking clients and
     transports .</p>
   </li>
   <li><p style="margin-bottom: 0in"><strong>MEP Support</strong> - Axis2 now
@@ -99,16 +102,18 @@
     is completely transport-independent.</p>
   </li>
   <li><p style="margin-bottom: 0in"><strong>WSDL support</strong> - Axis2
-    supports the Web Service Description
-    Language, version <a href="http://www.w3.org/TR/wsdl">1.1</a> and <a href="http://www.w3.org/TR/wsdl20/">2.0</a>, which allows you to easily build stubs
-    to access remote services, and also to automatically export
+    supports the Web Service Description Language, version <a
+    href="http://www.w3.org/TR/wsdl">1.1</a> and <a
+    href="http://www.w3.org/TR/wsdl20/">2.0</a>, which allows you to easily
+    build stubs to access remote services, and also to automatically export
     machine-readable descriptions of your deployed services from Axis2.</p>
   </li>
-  <li><p style="margin-bottom: 0in"><strong>Add-ons</strong> Several web
+  <li><p style="margin-bottom: 0in"><strong>Add-ons</strong> Several Web
     services specifications have been incorporated including <a
-    href="http://ws.apache.org/wss4j/" target="_blank">WSS4J</a> for security, <a
-    href="http://ws.apache.org/sandesha/" target="_blank">Sandesha</a> for reliable
-    messaging, <a href="http://ws.apache.org/kandula/" target="_blank">Kandula</a> which is
+    href="http://ws.apache.org/wss4j/" target="_blank">WSS4J</a> for
+    security, <a href="http://ws.apache.org/sandesha/"
+    target="_blank">Sandesha</a> for reliable messaging, <a
+    href="http://ws.apache.org/kandula/" target="_blank">Kandula</a> which is
     an encapsulation of WS-Coordination, WS-AtomicTransaction and
     WS-BusinessActivity.</p>
   </li>
@@ -134,7 +139,7 @@
 
 <h3><a name="Axis2_Complete_Features_List">Axis2 Complete Features
 List</a></h3>
-<ol type="1"> 
+<ol type="1">
   <li>AXIOM, an XML object model working on StAX (Streaming API for XML)
     parsing optimized for SOAP 1.1/1.2 Messages. This has complete XML
     infoset support.</li>
@@ -171,8 +176,9 @@
     corresponding service using generated client</li>
   <li>WSDL fault handling (fault code generation)</li>
   <li>SOAP 1.2 and HTTP binding generation (?wsdl)</li>
-  <li>Streaming Attachments support for MTOM (SOAP Message Transamission
-    Optimization Mechanism)</li></ol>
+  <li>Streaming Attachments support for MTOM (SOAP Message Transmission
+    Optimization Mechanism)</li>
+</ol>
 
 <h4><a name="Experimental_Features_List">Experimental Features List</a></h4>
 <ol type="1">
@@ -181,7 +187,6 @@
   <li>Unexpanded war support (location of axis2.xml and repository can be
     specified in web.xml )</li>
 </ol>
-
 <!--<h4><a name="Major_Changes_Since_Last_Release">Major Changes Since Last
 Release</a></h4>
 <ol type="1">
@@ -192,35 +197,39 @@
 <ol type="1">
   <li>Axis2 Web Application (Web App)</li>
   <li>WSDL2WS- <!--<a href="CodegenTools-EclipsePlugin.html" target="_blank">Eclipse
-    plugin</a><a>/</a>--><a href="CodegenToolReference.html" target="_blank">Command line
+    plugin</a><a>/</a>-->
+     <a href="CodegenToolReference.html" target="_blank">Command line
     version</a><!--<a>/</a><a
     href="tools\idea\Idea_plug-in_userguide.html#WSDL2Java_Code_Generation" target="_blank">IntelliJ
-    IDEA plugin</a>--></li>
+    IDEA plugin</a>-->
+  </li>
   <!--<li>Service Archive Wizard- <a
-    href="ServiceArchiveToolReference.html" target="_blank">Eclipse plugin</a>/ <a
-    href="tools\idea\Idea_plug-in_userguide.html#Create_Service_Archive" target="_blank">IntelliJ
-    IDEA plugin</a>--></li>
+  href="ServiceArchiveToolReference.html" target="_blank">Eclipse plugin</a>/ <a
+  href="tools\idea\Idea_plug-in_userguide.html#Create_Service_Archive" target="_blank">IntelliJ
+  IDEA plugin</a>-->
 </ol>
-<p><a href="http://ws.apache.org/axis2/download.cgi" target="_blank">Download</a> above plugins</p>
+
+<p><a href="http://ws.apache.org/axis2/download.cgi"
+target="_blank">Download</a> above plugins</p>
 
 <h3>What Still To Do?</h3>
+
 <p>See list of what we think needs to be done, and consider helping out if
 you're interested and able!</p>
 <ol type="1">
   <li>JAX-RPC 1.1 and/or JAX-WS compliance</li>
   <li>SOAP Encoding</li>
   <li>Binary serialization and de-serialization support</li>
-  <li>Resource framework implementation (WS-RF) and Enterprise web services
+  <li>Resource framework implementation (WS-RF) and Enterprise Web services
     such as JSR 109 support</li>
   <li>HTTP transport based on URL.openConnection (to be usable in Java Web
     Start clients, because of authenticating proxies)</li>
 </ol>
 
-<p align="right"><a href="userguide.html"><img
-src="images/arrow_left.gif"> Previous</a> | <a href="userguide2.html">Next <img src="images/arrow_right.gif"></a></p>
-
-Pages: <a href="userguide.html">Content</a>,
-<b>1</b>, <a href="userguide2.html">2</a>, <a href="userguide3.html"
->3</a>, <a href="userguide4.html">4</a>, <a
-href="userguide5.html">5</a></body>
+<p align="right"><a href="userguide.html"><img src="images/arrow_left.gif">
+Previous</a> | <a href="userguide2.html">Next <img
+src="images/arrow_right.gif"></a></p>
+Pages: <a href="userguide.html">Content</a>, <b>1</b>, <a
+href="userguide2.html">2</a>, <a href="userguide3.html">3</a>, <a
+href="userguide4.html">4</a>, <a href="userguide5.html">5</a></body>
 </html>

Modified: webservices/axis2/trunk/java/xdocs/latest/userguide2.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/xdocs/latest/userguide2.html?rev=397184&r1=397183&r2=397184&view=diff
==============================================================================
--- webservices/axis2/trunk/java/xdocs/latest/userguide2.html (original)
+++ webservices/axis2/trunk/java/xdocs/latest/userguide2.html Wed Apr 26 04:43:28 2006
@@ -4,13 +4,13 @@
 <head>
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
   <title>Axis2 User's Guide</title>
-  <meta name="generator" content="Bluefish 1.0.4">
 </head>
 
 <body lang="en-US" dir="ltr">
 <h4><a name="Axis2_User's_Guide">Axis2 User's Guide</a></h4>
 
-<p><i>Version 1.0</i></p>
+<p><i>-Axis2 version 1.0</i></p>
+
 <p><i>User Feedback: <a
 href="mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></i>. Prefix
 subject with [Axis2]. To subscribe to mailing list see <a
@@ -30,7 +30,7 @@
 <p>Before starting, please check whether you have deployed the "axis2.war" in
 your servlet container and it is working properly. (See <a
 href="installationguide.html" target="_blank">Installation Guide</a>). User
-can select any of the  following two ways of writing web services using
+can select any of the  following two ways of writing Web services using
 Axis2. </p>
 <ol>
   <li><a href="#Writing_Web_Services_Using Axis2's_Primary_APIs">Use Axis2's
@@ -116,14 +116,13 @@
 <p><em>The above XML tags can be explained as follows:</em></p>
 
 <p>First comes the description and the service class.</p>
-
 <pre>&lt;parameter name="ServiceClass" locked="false"&gt;userguide.example1.MyService&lt;/parameter&gt;</pre>
 
-<p>We provide the name of the service implementation class a parameter in the services.xml file.</p>
+<p>We provide the name of the service implementation class a parameter in the
+services.xml file.</p>
 
 <p>The next two xml tags describe the operations that are available in this
-service with respective message receivers. </p>
-
+service with respective message receivers.</p>
 <pre>   &lt;operation name="echo"&gt;
             &lt;messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/&gt;
             &lt;actionMapping&gt;urn:echo&lt;/actionMapping&gt;
@@ -132,12 +131,17 @@
        &lt;messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/&gt;
        &lt;actionMapping&gt;urn:ping&lt;/actionMapping&gt;
    &lt;/operation&gt;</pre>
-    
-<p> Every operation must have a corresponding MessageReceiver class. When Axis2 engine receives a message, after the message is being processed by the handlers, it will be handed over to a MessageReceiver.
-<br /> For the "echo" operation we have used a <strong>RawXMLINOutMessageReceiver</strong> since it is an IN-OUT
-operation. For IN-ONLY operation "ping", we have used
+
+<p>Every operation must have a corresponding MessageReceiver class. When
+Axis2 engine receives a message, after the message is being processed by the
+handlers, it will be handed over to a MessageReceiver. <br>
+For the "echo" operation we have used a
+<strong>RawXMLINOutMessageReceiver</strong> since it is an IN-OUT operation.
+For IN-ONLY operation "ping", we have used
 <strong>RawXMLINOnlyMessageReceiver</strong> as the message receiver.</p>
-<p>The actionMapping is required only if you want to enable WS-Addressing. This will be used later in this user guide.</p>
+
+<p>The actionMapping is required only if you want to enable WS-Addressing.
+This will be used later in this user guide.</p>
 
 <p>You can write a services.xml file to include a group of services instead
 of a single service. This makes management and deployment of a set of related
@@ -163,7 +167,8 @@
 
 <p>Axis2 uses ".aar" (Axis Archive) file as the deployment package for Web
 Services. Therefore, for MyService we will use "MyService.aar" with the
-"services.xml" packaged in the META-INF as shown in the following picture. (Name of the service will be the name of the archive file , if and only if
+"services.xml" packaged in the META-INF as shown in the following picture.
+(Name of the service will be the name of the archive file , if and only if
 the services.xml contains only one service element).</p>
 
 <p><img src="images/userguide/ServiceItems.jpg" name="Graphic1"
@@ -247,7 +252,7 @@
 
 <p>Locate the skeleton class that can be found under src/userguide directory
 with the name "Axis2SampleDocLitPortTypeSkeleton.java". This is the skeleton
-for our web service and we can now easily implement the business logic. The
+for our Web service and we can now easily implement the business logic. The
 WSDL we have used has three operations:<!--<li><p style="margin-bottom: 0in">echoVoid   - Operation that does not
 accept any input parameters  and also provide no out put parameters. Just
 perform some task </p>
@@ -296,7 +301,7 @@
  }</pre>
 
 <p>Similarly following code fragments shows how you can fill the business
-logic for our first web service.</p>
+logic for our first Web service.</p>
 
 <h4><a name="echoStringArray">echoStringArray</a></h4>
 <pre>public org.apache.axis2.userguide.xsd.EchoStringArrayReturnDocument echoStringArray
@@ -339,9 +344,9 @@
 
 <h4><a name="services_xml">services.xml</a></h4>
 
-<p> Axis2 uses "services.xml" to hold the configurations for a particular web
+<p> Axis2 uses "services.xml" to hold the configurations for a particular Web
 service deployed in the Axis2 engine. When we generate the skeleton using the
-WSDL2Java tool, it will also generate the required services.xml for this web
+WSDL2Java tool, it will also generate the required services.xml for this Web
 service as well. This can be found in the same directory as the skeleton. The
 generated services.xml is as follows.</p>
 <pre>&lt;!-- This services.xml file was auto-generated from WSDL --&gt;



Mime
View raw message