You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ch...@apache.org on 2007/02/08 06:00:06 UTC

svn commit: r504782 - in /webservices/axis2/trunk/java/xdocs/1_1: dii.html http-transport.html installationguide.html

Author: chatra
Date: Wed Feb  7 21:00:05 2007
New Revision: 504782

URL: http://svn.apache.org/viewvc?view=rev&rev=504782
Log:
applied patch in AXIS2-2127

Modified:
    webservices/axis2/trunk/java/xdocs/1_1/dii.html
    webservices/axis2/trunk/java/xdocs/1_1/http-transport.html
    webservices/axis2/trunk/java/xdocs/1_1/installationguide.html

Modified: webservices/axis2/trunk/java/xdocs/1_1/dii.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/dii.html?view=diff&rev=504782&r1=504781&r2=504782
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/dii.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/dii.html Wed Feb  7 21:00:05 2007
@@ -2,7 +2,8 @@
 <head>
   <meta http-equiv="content-type" content="">
   <title></title>
-  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css" media="all" />
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all">
 </head>
 
 <body>
@@ -10,50 +11,49 @@
 
 <h1>Writing Web Service Clients Using Axis2's Primary APIs</h1>
 
-<p>This section presents complex yet powerful <strong>XML based client
-API</strong> which is intended for advanced users. However, if you are a new
-user we recommend using code generation given in the <a
+<p>This section presents a complex yet powerful <strong>XML based client
+API</strong>, which is intended for advanced users. However, if you are a new
+user, we recommend using code generation given in the <a
 href="adv-userguide.html">Advance User's Guide</a>.</p>
 
 <p>Web services can be used to provide a wide-range of functionality to the
-user from simple, less time consuming operations such as "getStockQuote" to
-time consuming business services. When we utilize (invoke using client
-applications) these Web services we cannot use simple generic invocation
-paradigms that suite 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 an IN-OUT operation that takes a long time to
-complete, then most often 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 into play
-when we need them. Let's try to analyze some common service invocation
-paradigms.</p>
+user from simple, quick operations such as "getStockQuote" to time consuming
+business services. When we utilize (invoke using client applications) these
+Web services, we cannot use simple generic invocation paradigms that suite
+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 an IN-OUT operation that takes a long time to complete, then most often
+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 into play when we need
+them. Let's try to analyze some common service invocation paradigms.</p>
 
-<p>Many Web service engines provide users with a Blocking and Non-Blocking
+<p>Many Web service engines provide users with 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 the client receives a
-    response or a fault. This is the simplest way of invoking Web services
+  <li><p style="margin-bottom: 0in"><b>Blocking API</b> - Once the service
+    invocation is called, the client application hangs and only regains
+    control when the operation completes, after which the 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
+  <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 regains control and the response is retrieved using the
+    callback object provided. This approach provides 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
+<p>Both mechanisms work at the API level. Let's name the asynchronous
 behavior that we can get using the Non-Blocking API as <b>API Level
 Asynchrony.</b></p>
 
-<p>Both these mechanisms use single transport connections to send the request
-and to receive the response. They severely lag the capability of using two
+<p>Both mechanisms use single transport connections to send the request and
+to receive the response. They severely lag the capability of using two
 transport connections for the request and the response (either One-Way or
 Two-Way). So both these mechanisms fail to address the problem of long
 running transactions (the transport connection may time-out before the
@@ -62,8 +62,8 @@
 that we gain using this solution can be called <b>Transport Level
 Asynchrony</b>.</p>
 
-<p>By <strong>combining API Level Asynchrony &amp; Transport Level
-Asynchrony</strong> we can obtain four different invocation patterns for Web
+<p>By <strong>combining API Level Asynchrony and Transport Level
+Asynchrony</strong>, we can obtain four different invocation patterns for Web
 services as shown in the following table.</p>
 <a name="table1"></a>
 
@@ -109,8 +109,8 @@
       <td width="33%"><p>Yes</p>
       </td>
       <td width="33%"><p>This is can be used to gain the maximum asynchronous
-        behavior. Non blocking in the API level and also in the transport
-        level</p>
+        behavior. Non blocking at the API level and also at the transport
+        level.</p>
       </td>
     </tr>
   </tbody>
@@ -119,11 +119,11 @@
 <p>Axis2 provides the user with all these possibilities to invoke Web
 services.</p>
 
-<p>Following section present clients that use different possibilities
-presented above to invoke a Web Service using <code>ServiceClient</code>s.
-All samples mentioned in this guide are located at the <b><font
-color="#000000">"samples\userguide\src"</font></b> directory of the binary
-distribution.</p>
+<p>The following section presents clients that use the different
+possibilities presented above to invoke a Web Service using
+<code>ServiceClient</code>s. All the samples mentioned in this guide are
+located at the <b><font color="#000000">"samples\userguide\src"</font></b>
+directory of the binary distribution.</p>
 
 <p>This section presents four types of clients.</p>
 <ol>
@@ -138,7 +138,7 @@
 
 <p>Axis2 provides the user with several invocation patterns for Web services,
 ranging from pure blocking single channel invocations to non-blocking dual
-channel invocations. Let's first see how we can write a client to invoke
+channel invocations. First let us see how we can write a client to invoke the
 "echo" operation of "MyService" using the simplest blocking invocation. The
 client code you need to write is as follows.</p>
 <source><pre>  try {
@@ -159,13 +159,13 @@
         } 
 }</pre>
 </source>
-<p>1. The lines highlighted in green lines show the set of operations that
-you need to perform in order to invoke a Web service.</p>
+<p>1. The lines highlighted in green show the set of operations that you need
+to perform in order to invoke a Web service.</p>
 
 <p>2. The rest is used to create the OMElement that needs to be sent and
 display the response OMElement.</p>
 
-<p>To test this client, use the provided ant build file that can be found in
+<p>To test this client, use the provided Ant build file that can be found in
 the "<strong>Axis2_HOME/samples/userguide</strong>" directory. Run the
 "run.client.blocking" target. If you can see the response OMElement printed
 in your command line, then you have successfully tested the client.</p>
@@ -173,9 +173,10 @@
 
 <h4>One Way Client</h4>
 
-<p>In the Web service "MyService" we had an IN-ONLY operation with the name
-"ping" (see <a href="adv-userguide.html#Web_Services_Using_Axis2">Creating a New Web Service</a>). Let's write a client to invoke this operation. The client
-code is as follows:</p>
+<p>In the Web service "MyService", we had an IN-ONLY operation with the name
+"ping" (see <a href="adv-userguide.html#Web_Services_Using_Axis2">Creating a
+New Web Service</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();
@@ -194,11 +195,12 @@
             axisFault.printStackTrace();
      }</pre>
 
-<p>Since we are accessing an IN-ONLY operation we can directly use the
-<code>fireAndForget()</code> in ServiceClient to invoke this operation. This
-will not block the invocation and will return the control immediately back to
-the client. You can test this client by running the target "run.client.ping"
-of the ant build file at "<strong>Axis2Home/samples/userguide</strong>".</p>
+<p>Since we are accessing an IN-ONLY operation, we can directly use the
+<code>fireAndForget()</code> in the ServiceClient to invoke this operation.
+This will not block the invocation and will return the control immediately
+back to the client. You can test this client by running the target
+"run.client.ping" of the Ant build file at
+"<strong>Axis2Home/samples/userguide</strong>".</p>
 
 <p>We have now invoked the two operations in our service. Are we done? No!
 There's a lot more to explore. Let's see some other ways to invoke the same
@@ -236,42 +238,42 @@
 Web service Clients.</p>
 
 <p>To run the sample client ("EchoNonBlockingClient") you can simply use the
-<code>run.client.nonblocking</code> target of the ant file found at the
+<code>run.client.nonblocking</code> target of the Ant file found in the
 "<strong>Axis2_HOME/samples/userguide</strong>" directory.</p>
 <a name="EchoNonBlockingDualClient"></a>
 
 <h4>Request-Response, Non-Blocking that uses two transport connections</h4>
 
 <p>The solution provided by the Non-Blocking API has one limitation when it
-comes to Web service invocations which take a long time to complete. The
+comes to Web service invocations that take a long time to complete. The
 limitation is due to the use of single transport connections to invoke the
-Web service and to retrieve the response. In other words, client API provides
-a non blocking invocation mechanism for users, but the request and the
-response come 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>
+Web service and retrieve the response. In other words, client API provides a
+non-blocking invocation mechanism for users, but the request and the response
+come 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
+&lt;wsa:RelatesTo&gt; headers. Axis2 provides support for an 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 uses 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>
+two transport connections. (The core of Axis2 does not depend on
+WS-Addressing, but contains a set of parameters, like in addressing, that can
+be populated by any method. WS-Addressing is one of the uses that may
+populate them. Even the transports can populate them. Hence, Axis2 has the
+flexibility to use different versions of addressing)</p>
+
+<p>Users can select between Blocking and 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. The 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();
 
@@ -313,14 +315,15 @@
             }
         }</pre>
 
-<p>The boolean flag (value true) in the
+<p>The boolean flag (value True) in the
 <b><code>options.setUseSeparateListener(...)</code></b> method informs the
-Axis2 engine to use separate transport connections for request and response.
-Finally <b><code>sender.cleanup()</code></b> informs the Axis2 engine to stop
-the client side listener started to retrieve the response.</p>
+Axis2 engine to use separate transport connections for the request and
+response. Finally <b><code>sender.cleanup()</code></b> informs the Axis2
+engine to stop the client side listener, which started to retrieve the
+response.</p>
 
 <p>To run the sample client ("EchoNonBlockingDualClient") you can simply use
-the "run.client.nonblockingdual" target of the ant file found at the
+the "run.client.nonblockingdual" target of the Ant file found in the
 "<strong>Axis2_HOME/samples/userguide/</strong>" directory.</p>
 </body>
 </html>

Modified: webservices/axis2/trunk/java/xdocs/1_1/http-transport.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/http-transport.html?view=diff&rev=504782&r1=504781&r2=504782
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/http-transport.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/http-transport.html Wed Feb  7 21:00:05 2007
@@ -1,216 +1,218 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-  <meta http-equiv="content-type" content="">
-  <title>HTTP transports</title>
-  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css" media="all" />
-</head>
-
-<body lang="en">
-
-<a name="configTransport"></a>
-<h1>HTTP Transport</h1>
-
-<p>This document is all about HTTP sender and HTTP receiver, and how they
-work in Axis2.</p>
-
-<p><i>Send your feedback or questions 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="#CommonsHTTPTransportSender">CommonsHTTPTransportSender</a>
-    <ul>
-      <li><a href="#httpsupport">HTTPS support</a></li>
-    </ul>
-  </li>
-  <li><a href="#timeout_config">Timeout Configuration</a></li>
-  <li><a href="#version_config">HTTP Version Configuration</a></li>
-  <li><a href="#auth">Proxy Authentication</a></li>
-  <li><a href="#preemptive_auth">Basic,Digest and NTLM Authentication</a></li>
-</ul>
-
-<a name="CommonsHTTPTransportSender"></a>
-<h2>CommonsHTTPTransportSender</h2>
-
-<p>This is the default transport sender that is used in Server API as well as
-Client API. As the name implies it is based on commons-httpclient-3.0.1. In
-order to acquire the maximum flexibility, this sender has implemented POST
-interface and GET interface. GET and HTTP interfaces are also involved in Axis2 REST support.</p>
-
-<p>Chunking and KeepAlive support is also integrated via the
-facilities provided by commons-httpclient along with HTTP 1.1 support.</p>
-
-<p>&lt;transportSender/&gt; element is used to define transport senders in
-the Axis2.xml as follows:</p>
-<pre>&lt;transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"&gt;
-     &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.1&lt;/parameter&gt;
-     &lt;parameter name="Transfer-Encoding"&gt;chunked&lt;/parameter&gt;
-      &lt;/transportSender&gt;
-</pre>
-
-<p>The above code snippet shows the simplest configuration of transport
-sender for common use. &lt;parameter/&gt; element introduces the additional parameters that
-should be compliant with the sender. HTTP PROTOCOL version sets as HTTP/1.0
-or HTTP/1.1. Default version is HTTP/1.1. It should be noted that chunking
-support is available only for HTTP/1.1. Thus, even if the user turn on "chunking", if the HTTP version is 1.0, this setting will be ignored by the transport framework. KeepAlive property is default in version 1.1.</p>
-
-<p>Some absolute properties are provided at runtime, such as character encoding style (UTF-8, UTF-16 etc) etc, are provided via MessageContext.</p>
-
-<a name="httpsupport"></a>
-<h3>HTTPS support</h3>
-
-It should be noted that CommonsHTTPTransportSender can be used to communicate
-over https. <code></code>
-<pre>&lt;transportSender name="<b>https</b>" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"&gt;
-     &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.1&lt;/parameter&gt;
-    &lt;parameter name="Transfer-Encoding"&gt;chunked&lt;/parameter&gt;
- &lt;/transportSender&gt;
-</pre>
-
-<p>Please note that https works only when the server does not expect to
-authenticate the clients and where the server has the clients' public keys in
-its trust store.</p>
-
-<a name="timeout_config"></a>
-<h2>Timeout Configuration</h2>
-
-<p>There are two timeout exists in transport level. They are called, Socket
-timeout and Connection timeout. This can be configured in deployment time or
-in run time. At the time of deployment, user has to add the following lines in
-Axis2.xml.</p>
-
-<p>For Socket timeout:</p>
-<pre>&lt;parameter name="SO_TIMEOUT" locked="false"&gt;some_int_value&lt;/parameter&gt;</pre>
-
-<p>For Connection timeout:</p>
-<pre> &lt;parameter name="CONNECTION_TIMEOUT" locked="false"&gt;some_int_value&lt;/parameter&gt;</pre>
-<br>
-At runtime it is set as follows in the Stub. <source>
-<pre>...
-Options options = new Options();
-options.setProperty(HTTPConstants.SO_TIMEOUT,new Integer(timeOutInMilliSeconds));
-options.setProperty(HTTPConstants.CONNECTION_TIMEOUT,new Integer(timeOutInMilliSeconds));
-
-// or
-
-options.setTimeOutInMilliSeconds(timeOutInMilliSeconds);
-...</pre>
-</source>
-
-<a name="version_config"></a>
-<h2>HTTP Version Configuration</h2>
-
-<p>The default HTTP version is 1.1. There are two methods in which user can
-change HTTP version to 1.0</p>
-<ol>
-  <li>By defining version in Axis2.xml as shown below.</li>
-  <pre> &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.0&lt;/parameter&gt;</pre>
-  <li>Or user can change version at runtime by doing the following</li>
-  <pre>...
-options.setProperty(org.apache.axis2.context.MessageContextConstants.HTTP_PROTOCOL_VERSION,org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10);
-...</pre>
-</ol>
-
-<a name="auth"></a>
-<h2>Proxy Authentication</h2>
-
-<p>Commons-http client has the inbuilt ability to support proxy authentication. Axis2 uses deployment time and runtime mechanisms to authenticate proxies.
-In deployment time, user has to change the Axis2.xml as follows. This
-authentication will be available in http and https.</p>
-<pre>&lt;transportSender name="<b>http</b>" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"&gt;
-        &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.1&lt;/parameter&gt;
-        &lt;parameter name="PROXY" proxy_host="proxy_host_name" proxy_port="proxy_host_port" locked="true&gt;userName:domain:passWord&lt;/parameter&gt;
-&lt;/transportSender&gt;
-</pre>
-
-<p>For a particular proxy, if authentication is not available fill
-"userName:domain:passWord"as "anonymous:anonymous:anonymous".</p>
-
-<p>At runtime user can override the PROXY settings with an Object of
-HttpTransportProperties.ProxyProperties. On the stub initiate an object of
-prior and set it to the MessageContext's property bag via
-HttpConstants.PROXY. On the stub, it depicts as follows,</p>
-<source>
-<pre>...
-Options options = new Options();
-....
-
-HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.new ProxyProperties();
-proxyProperties.setProxyHostName(....);
-proxyProperties.setProxyPort(...);
-...
-options.setProperty(HttpConstants.PROXY, proxyProperties);
-....
-</pre>
-</source>
-
-<p>The above code would eventually override the deployment proxy
-configuration settings.</p>
-
-
-<a name="preemptive_auth"></a>
-<h2>Basic,Digest and NTLM Authentication</h2>
-
-<p>HttpClient supports three different types of http authentication schemes: Basic, Digest and NTLM. Based on the challenge provided by server httpclient automatically selects the authentication scheme the request should be authenticated with. The most secure will be NTLM and least secure will be Basic.</p>
-
-<p>NTLM is the most complex of the authentication protocols supported by
-HttpClient. It requires an instance of NTCredentials be available for the
-domain name of the server or the default credentials. Note that since NTLM
-does not use the notion of realms HttpClient uses the domain name of the
-server as the name of the realm. Also note that the username provided to the
-NTCredentials should not be prefixed with the domain - ie: "axis2" is correct
-whereas "DOMAIN\axis2" is not correct.</p>
-
-<p>There are some significant differences in the way that NTLM works compared
-with basic and digest authentication. These differences are generally handled
-by HttpClient, however having an understanding of these differences can help
-avoid problems when using NTLM authentication.</p>
-<ol>
-  <li>NTLM authentication works almost exactly the same as any other form of
-    authentication in terms of the HttpClient API.  The only difference is
-    that you need to supply 'NTCredentials' instead of
-    'UsernamePasswordCredentials' (NTCredentials actually extends
-    UsernamePasswordCredentials so you can use NTCredentials right throughout
-    your application if need be).</li>
-  <li>The realm for NTLM authentication is the domain name of the computer
-    being connected to, this can be troublesome as servers often have
-    multiple domain names that refer to them.  Only the domain name that
-    HttpClient connects to (as specified by the HostConfiguration) is used to
-    look up the credentials. It is generally advised that while initially
-    testing NTLM authentication, you pass the realm in as null which is used
-    as the default.</li>
-  <li>NTLM authenticates a connection and not a request, so you need to
-    authenticate every time a new connection is made and keeping the
-    connection open during authentication is vital.  Due to this, NTLM cannot
-    be used to authenticate with both a proxy and the server, nor can NTLM be
-    used with HTTP 1.0 connections or servers that do not support HTTP
-    keep-alives.</li>
-</ol>
-
-<p>Axis2 also allows to add a custom Authentication Scheme to httpclient.</p>
-
-<p>The static inner bean Authenticator of HttpTransportProperties will hold the state of the server to be authenticated with. Once filled it has to be set to the Options's property bag with the key as HTTPConstants.AUTHENTICATE. The following code snippet shows the way of configuring the transport framework to use Basic Authentication:</p>
- 
- <source>
-<pre>
- ...
- Options options = new Options();
- 
- HttpTransportProperties.Authenticator
-                       auth = new HttpTransportProperties.Authenticator();
-            auth.setUsername("username");
-            auth.setPassword("password");
-            // set if realm or domain is know
-
- options.setProperty(org.apache.axis2.transport.http.HTTPConstants.BASIC_AUTHENTICATE,auth);
- ...
- </pre></source>
-
-
-</body>
-
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>HTTP transports</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all">
+</head>
+
+<body lang="en">
+<a name="configTransport"></a>
+
+<h1>HTTP Transport</h1>
+
+<p>This document is all about HTTP sender and HTTP receiver, and how they
+work in Axis2.</p>
+
+<p><i>Send your feedback or questions to: <a
+href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>. Prefix
+subject with [Axis2]. You can also <a
+href="http://ws.apache.org/axis2/mail-lists.html">subscribe</a> to the
+mailing list.</p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="#CommonsHTTPTransportSender">CommonsHTTPTransportSender</a>
+    <ul>
+      <li><a href="#httpsupport">HTTPS support</a></li>
+    </ul>
+  </li>
+  <li><a href="#timeout_config">Timeout Configuration</a></li>
+  <li><a href="#version_config">HTTP Version Configuration</a></li>
+  <li><a href="#auth">Proxy Authentication</a></li>
+  <li><a href="#preemptive_auth">Basic,Digest and NTLM Authentication</a></li>
+</ul>
+<a name="CommonsHTTPTransportSender"></a>
+
+<h2>CommonsHTTPTransportSender</h2>
+
+<p>This is the default transport sender that is used in Server API as well as
+Client API. As the name implies, it is based on commons-httpclient-3.0.1. In
+order to acquire the maximum flexibility, this sender has implemented POST
+interface and GET interface. GET and HTTP interfaces are also involved in
+Axis2 REST support.</p>
+
+<p>Chunking and KeepAlive support is also integrated via the facilities
+provided by commons-httpclient along with HTTP 1.1 support.</p>
+
+<p>&lt;transportSender/&gt; element is used to define transport senders in
+the axis2.xml as follows:</p>
+<pre>&lt;transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"&gt;
+     &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.1&lt;/parameter&gt;
+     &lt;parameter name="Transfer-Encoding"&gt;chunked&lt;/parameter&gt;
+      &lt;/transportSender&gt;</pre>
+
+<p>The above code snippet shows the simplest configuration of a transport
+sender for common use. &lt;parameter/&gt; element introduces the additional
+parameters that should be compliant with the sender. HTTP PROTOCOL version
+sets as HTTP/1.0 or HTTP/1.1. The default version is HTTP/1.1. It should be
+noted that chunking support is available only for HTTP/1.1. Thus, even if the
+user turns on "chunking", if the HTTP version is 1.0, this setting will be
+ignored by the transport framework. KeepAlive is a default property in
+version 1.1.</p>
+
+<p>Some absolute properties are provided at runtime, such as character
+encoding style (UTF-8, UTF-16 etc) is provided via MessageContext.</p>
+<a name="httpsupport"></a>
+
+<h3>HTTPS support</h3>
+It should be noted that CommonsHTTPTransportSender can be used to communicate
+over https. <code></code>
+<pre>&lt;transportSender name="<b>https</b>" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"&gt;
+     &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.1&lt;/parameter&gt;
+    &lt;parameter name="Transfer-Encoding"&gt;chunked&lt;/parameter&gt;
+ &lt;/transportSender&gt;</pre>
+
+<p>Please note that HTTPS works only when the server does not expect to
+authenticate the clients and where the server has the clients' public keys in
+its trust store.</p>
+<a name="timeout_config"></a>
+
+<h2>Timeout Configuration</h2>
+
+<p>Two timeout instances exist in the transport level. They are called,
+Socket timeout and Connection timeout. This can be configured at deployment
+time or run time. At the time of deployment, the user has to add the
+following lines in axis2.xml.</p>
+
+<p>For Socket timeout:</p>
+<pre>&lt;parameter name="SO_TIMEOUT" locked="false"&gt;some_int_value&lt;/parameter&gt;</pre>
+
+<p>For Connection timeout:</p>
+<pre> &lt;parameter name="CONNECTION_TIMEOUT" locked="false"&gt;some_int_value&lt;/parameter&gt;</pre>
+<br>
+At runtime, it is set as follows in the Stub. <source>
+<pre>...
+Options options = new Options();
+options.setProperty(HTTPConstants.SO_TIMEOUT,new Integer(timeOutInMilliSeconds));
+options.setProperty(HTTPConstants.CONNECTION_TIMEOUT,new Integer(timeOutInMilliSeconds));
+
+// or
+
+options.setTimeOutInMilliSeconds(timeOutInMilliSeconds);
+...</pre>
+</source><a name="version_config"></a>
+
+<h2>HTTP Version Configuration</h2>
+
+<p>The default HTTP version is 1.1. There are two methods in which the user
+can change the HTTP version to 1.0</p>
+<ol>
+  <li>By defining the version in axis2.xml as shown below.</li>
+  <pre> &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.0&lt;/parameter&gt;</pre>
+  <li>Or the user can change the version at runtime by doing the
+  following</li>
+  <pre>...
+options.setProperty(org.apache.axis2.context.MessageContextConstants.HTTP_PROTOCOL_VERSION,org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10);
+...</pre>
+</ol>
+<a name="auth"></a>
+
+<h2>Proxy Authentication</h2>
+
+<p>The Commons-http client has the inbuilt ability to support proxy
+authentication. Axis2 uses deployment time and runtime mechanisms to
+authenticate proxies. At deployment time, the user has to change the
+axis2.xml as follows. This authentication will be available in HTTP and
+HTTPS.</p>
+<pre>&lt;transportSender name="<b>http</b>" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"&gt;
+        &lt;parameter name="PROTOCOL" locked="false"&gt;HTTP/1.1&lt;/parameter&gt;
+        &lt;parameter name="PROXY" proxy_host="proxy_host_name" proxy_port="proxy_host_port" locked="true&gt;userName:domain:passWord&lt;/parameter&gt;
+&lt;/transportSender&gt;</pre>
+
+<p>For a particular proxy, if authentication is not available, enter thel
+"userName:domain:passWord"as "anonymous:anonymous:anonymous".</p>
+
+<p>At runtime, the user can override the PROXY settings with an Object of
+HttpTransportProperties.ProxyProperties. On the stub, initiate an object of
+the prior setting and set it to the MessageContext's property bag via
+HttpConstants.PROXY. On the stub, it depicts as follows,</p>
+<source><pre>...
+Options options = new Options();
+....
+
+HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.new ProxyProperties();
+proxyProperties.setProxyHostName(....);
+proxyProperties.setProxyPort(...);
+...
+options.setProperty(HttpConstants.PROXY, proxyProperties);
+....</pre>
+</source>
+<p>The above code would eventually override the deployment proxy
+configuration settings.</p>
+<a name="preemptive_auth"></a>
+
+<h2>Basic, Digest and NTLM Authentication</h2>
+
+<p>HttpClient supports three different types of HTTP authentication schemes:
+Basic, Digest and NTLM. Based on the challenge provided by the server,
+httpclient automatically selects the authentication scheme with which the
+request should be authenticated.. The most secure will be NTLM and the least
+secure will be Basic.</p>
+
+<p>NTLM is the most complex of the authentication protocols supported by
+HttpClient. It requires an instance of NTCredentials to be available for the
+domain name of the server or the default credentials. Note that since NTLM
+does not use the notion of realms, HttpClient uses the domain name of the
+server as the name of the realm. Also note that the username provided to the
+NTCredentials should not be prefixed with the domain - ie: "axis2" is correct
+whereas "DOMAIN\axis2" is not correct.</p>
+
+<p>There are some significant differences in the way that NTLM works compared
+with basic and digest authentication. These differences are generally handled
+by HttpClient, however having an understanding of these differences can help
+avoid problems when using NTLM authentication.</p>
+<ol>
+  <li>NTLM authentication works almost exactly the same way as any other form
+    of authentication in terms of the HttpClient API. The only difference is
+    that you need to supply 'NTCredentials' instead of
+    'UsernamePasswordCredentials' (NTCredentials actually extends
+    UsernamePasswordCredentials so you can use NTCredentials right throughout
+    your application if need be).</li>
+  <li>The realm for NTLM authentication is the domain name of the computer to
+    which you are being connected. This can be troublesome as servers often
+    have multiple domain names that refer to them. Only the domain name that
+    the HttpClient connects to (as specified by the HostConfiguration) is
+    used to look up the credentials. It is generally advised that while
+    initially testing NTLM authentication, you pass the realm as null, which
+    is used by default.</li>
+  <li>NTLM authenticates a connection and not a request. So you need to
+    authenticate every time a new connection is made, and keeping the
+    connection open during authentication is vital. Due to this, NTLM cannot
+    be used to authenticate with both a proxy and the server, nor can NTLM be
+    used with HTTP 1.0 connections or servers that do not support HTTP
+    keep-alives.</li>
+</ol>
+
+<p>Axis2 also allows to add a custom Authentication Scheme to httpclient.</p>
+
+<p>The static inner bean Authenticator of HttpTransportProperties will hold
+the state of the server to be authenticated with. Once filled, it has to be
+set to the Options's property bag with the key as HTTPConstants.AUTHENTICATE.
+The following code snippet shows the way of configuring the transport
+framework to use Basic Authentication:</p>
+<source><pre> ...
+ Options options = new Options();
+ 
+ HttpTransportProperties.Authenticator
+                       auth = new HttpTransportProperties.Authenticator();
+            auth.setUsername("username");
+            auth.setPassword("password");
+            // set if realm or domain is know
+
+ options.setProperty(org.apache.axis2.transport.http.HTTPConstants.BASIC_AUTHENTICATE,auth);
+ ...
+ </pre>
+</source></body>
+</html>

Modified: webservices/axis2/trunk/java/xdocs/1_1/installationguide.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/installationguide.html?view=diff&rev=504782&r1=504781&r2=504782
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/installationguide.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/installationguide.html Wed Feb  7 21:00:05 2007
@@ -9,14 +9,16 @@
 <body lang="en">
 <h1 align="center">Apache Axis2 Installation Guide</h1>
 
-<p>This document will give you information on Axis2 distribution packages,
-system prerequisites &amp; setting up environment variables and tools
-followed by detailed instructions on installation methods.</p>
+<p>This document provides information on Axis2 distribution packages, system
+prerequisites and setting up environment variables and tools followed by
+detailed instructions on installation methods.</p>
 
 <p><i>Send your feedback 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>
+href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>
+href="http://ws.apache.org/axis2/mail-lists.html". Prefix subject with
+[Axis2]. You can also <a href="http://ws.apache.org/axis2/mail-lists.html">
+href="http://ws.apache.org/axis2/mail-lists.html"subscribe</a>
+href="http://ws.apache.org/axis2/mail-lists.html" to the mailing list. </p>
 
 <h2>Contents</h2>
 <ul>
@@ -44,8 +46,8 @@
         <ul>
           <li><a href="#_Toc96698083">Setting up the Environment and
           Tools</a></li>
-          <li><a href="#_Toc96698085">Building Axis2 Binaries and WAR file
-            Using the Source Distribution</a></li>
+          <li><a href="#_Toc96698085">Building Axis2 Binaries and the WAR
+            file Using the Source Distribution</a></li>
         </ul>
       </li>
     </ul>
@@ -75,7 +77,7 @@
 
 <h3>1. Standard Binary Distribution</h3>
 
-<p>This is the complete version of Axis2 and include samples and convenient
+<p>This is the complete version of Axis2 and includes samples and convenient
 scripts as well.</p>
 
 <p><a
@@ -85,30 +87,34 @@
 
 <h3>2. WAR (Web Archive) Distribution</h3>
 
-<p>This will be the Web application of Axis2 which can be deployed in most of
-the servlet containers.</p>
+<p>This is the Web application of Axis2, which can be deployed in most of the
+servlet containers.</p>
 
 <p><a
 href="http://ws.apache.org/axis2/download/1_1_1/download.cgi">Download</a>
 WAR (Web Archive) Distribution</p>
 
+<p></p>
+
 <h3>3. Documents Distribution</h3>
 
-<p>This will contain all the documentation in one package. The package
-includes the xdocs and the Java API docs of this project.</p>
+<p>This contains all the documentation in one package. The package includes
+the xdocs and the Java API docs of this project.</p>
 
 <p><a
 href="http://ws.apache.org/axis2/download/1_1_1/download.cgi">Download</a>
 Documents Distribution</p>
 
+<p></p>
+
 <h3>4. Source Distribution</h3>
 
-<p>This will contain the sources of Axis2 standard distribution, and is
-mainly for the benefit of the advance users. One can generate a binary
-distribution using the source by typing <span class="style1">$maven dist-bin.
-</span> You need to set up the Axis2 environment before running this command.
-Step by step details on how to create the binary distribution is available in
-the <a href="#advanced">Advanced</a> section.</p>
+<p>This contains the sources of Axis2 standard distribution, and is mainly
+for the benefit of the advance users. One can generate a binary distribution
+using the source by typing <span class="style1">$maven dist-bin. </span> You
+need to set up the Axis2 environment before running this command. Step by
+step details on how to create the binary distribution is available in the <a
+href="#advanced">Advanced</a> section.</p>
 
 <p><a
 href="http://ws.apache.org/axis2/download/1_1_1/download.cgi">Download</a>
@@ -139,7 +145,8 @@
       <td><strong>Build Tool</strong>-<a href="http://ant.apache.org/">Apache
         Ant</a>
 
-        <p>To run samples and to build war from Axis2 binary distribution.</p>
+        <p>To run samples and to build WAR files from Axis2 binary
+        distribution.</p>
       </td>
       <td>Version 1.6.5 or higher (<a
         href="http://ant.apache.org/bindownload.cgi">download</a>).</td>
@@ -153,8 +160,8 @@
       </td>
       <td>1.0.2 or higher in Maven 1.x series (<a
         href="http://maven.apache.org/maven-1.x/start/download.html">download</a>).
-        <strong>Please download maven 1.x version. Axis2 does not support
-        maven 2.</strong></td>
+        <strong>Please download Maven 1.x version. Axis2 does not support
+        Maven 2.</strong></td>
     </tr>
   </tbody>
 </table>
@@ -165,16 +172,16 @@
 
 <h3>1. Download and Install the Apache Axis2 Binary Distribution</h3>
 
-<p>Download and install a Java Development Kit (JDK) release (version 1.4 or
-later) from <a href="http://java.sun.com/j2se/"> here .</a> Install the JDK
-according to the instructions included with the release.Set an environment
+<p><a href="http://java.sun.com/j2se/">Download</a> and install a Java
+Development Kit (JDK) release (version 1.4 or later). Install the JDK
+according to the instructions included with the release. Set an environment
 variable JAVA_HOME to the pathname of the directory into which you installed
 the JDK release.</p>
 
 <p>Download and unpack the <a
 href="http://ws.apache.org/axis2/download/1_1_1/download.cgi">Axis2 Standard
 Binary Distribution</a> into a convenient location so that the distribution
-resides in its own directory. Set an environment variables AXIS2_HOME to the
+resides in its own directory. Set an environment variable AXIS2_HOME to the
 pathname of the extracted directory of Axis2 (Eg: /opt/axis2-1.1.1).</p>
 <a name="standalone2"></a>
 
@@ -192,21 +199,21 @@
 <h3>3. Building the Axis2 Web Application (axis2.war) Using Standard Binary
 Distribution</h3>
 
-<p>Download and install Apache Ant (version 1.6.5 or later) from <a
-href="http://ant.apache.org/bindownload.cgi"> here .</a> Install the Apache
-Ant according to the instructions included with the Ant release.</p>
+<p><a href="http://ant.apache.org/bindownload.cgi">Download</a> and install
+Apache Ant (version 1.6.5 or later). Install Apache Ant according to the
+instructions included with the Ant release.</p>
 
-<p>Locate the ant build file (build.xml) inside the webapp directory which
+<p>Locate the Ant build file (build.xml) inside the webapp directory, which
 resides in your Axis2 home directory (i.e:- $AXIS_HOME/webapp)". Run the Ant
 build by executing "ant create.war" inside the $AXIS2_HOME/webapps folder.
 You can find the generated axis2.war inside the $AXIS2_HOME/dist directory.
 All the services and modules that are present in the AXIS2_HOME/repository
-will be packed in to the created axis2.war together with the Axis2
+will be packed into the created axis2.war together with the Axis2
 configuration found at $AXIS2_HOME/conf/axis2.xml.</p>
 
-<p>You can read the <a href="#servlet_container">installing Axis2 in a
-servlet container</a> to figure out how to deploy the Axis2 web application
-in a servlet container.</p>
+<p>Read <a href="#servlet_container">Installing Axis2 in a Servlet
+Container</a> to find out how to deploy the Axis2 web application in a
+servlet container.</p>
 <a name="standalone4"></a>
 
 <h3>4. Getting Familiar with the Axis2 Convenient Scripts</h3>
@@ -236,23 +243,23 @@
     </tr>
     <tr>
       <td>axis2server.{sh|bat}</td>
-      <td>This script will start an standalone Axis2 server using the
+      <td>This script will start a standalone Axis2 server using the
         AXIS2_HOME/repository as the Axis2 repository and the
-        AXIS2_HOME/conf/axis2.xml as the Axis2 configuration file.  This will
+        AXIS2_HOME/conf/axis2.xml as the Axis2 configuration file. This will
         start all the transport listeners listed in the
         AXIS2_HOME/conf/axis2.xml.
 
-        <p>As an example, if you want to deploy a service using standalone
+        <p>For example, if you want to deploy a service using a standalone
         Axis2 server,then copy your service archive to the
-        AXIS2_HOME/repository/services directory. After that go to the
-        "Transport Ins" section of the AXIS2_HOME/conf/axis2.xml and
-        configure the transport receivers (simpleHttpServer in port 8080 is
-        listed by default). Then invoke this script.</p>
+        AXIS2_HOME/repository/services directory. Next, go to the "Transport
+        Ins" section of the AXIS2_HOME/conf/axis2.xml and configure the
+        transport receivers (simpleHttpServer in port 8080 is listed by
+        default). Then invoke this script.</p>
       </td>
     </tr>
     <tr>
       <td>wsdl2java.{bat|sh}</td>
-      <td>This script generates java code according to a given WSDL file to
+      <td>This script generates Java code according to a given WSDL file to
         handle Web service invocations (Client side Stubs). This script also
         has the ability to generate service skeletons according to the given
         WSDL.<br>
@@ -261,7 +268,7 @@
         <p><em>Usage:  wsdl2java.{sh|bat} [OPTION]... -uri &lt;Location of
         WSDL&gt;</em></p>
 
-        <p>Eg:  wsdl2java.sh -uri ../wsdl/Axis2Sample.wsdl</p>
+        <p>e.g., wsdl2java.sh -uri ../wsdl/Axis2Sample.wsdl</p>
 
         <p>A more detailed reference about this script can be found <a
         href="reference.html">here</a></p>
@@ -269,14 +276,14 @@
     </tr>
     <tr>
       <td>java2wsdl.{bat|sh}</td>
-      <td>This script generates the appropriate WSDL file for a given java
+      <td>This script generates the appropriate WSDL file for a given Java
         class.<br>
 
+
         <p><em>Usage:  Java2WSDL.{sh|bat} [OPTION]... -cn &lt;fully qualified
         class name&gt;</em></p>
 
-
-        <p>Eg:  Java2WSDL.sh -cn ../samples/test/searchTool.Search</p>
+        <p>e.g., Java2WSDL.sh -cn ../samples/test/searchTool.Search</p>
 
         <p>A more detailed reference about this script can be found <a
         href="reference.html">here</a></p>
@@ -294,13 +301,13 @@
   <li>Build the Axis2 WAR file using the Axis2 Standard Binary Distribution.
     (Alternatively you can <a
     href="http://ws.apache.org/axis2/download/1_1_1/download.cgi">download</a>
-    the axis2.war or you can build axis2.war using the <a href="#war">Source
-    Distribution</a>.</li>
-  <li>Drop the war in the webapps folder of the servlet container. Most
-    servlet containers will automatically install war. (some servlet
+    the axis2.war file or you can build axis2.war using the <a
+    href="#war">Source Distribution</a>.</li>
+  <li>Drop the WAR file in the webapps folder of the servlet container. Most
+    servlet containers will automatically install the WAR file. (Some servlet
     containers may require a restart in order to capture the new web
-    application. Refer your servlet container documentation for more
-    information about this.)</li>
+    application. Refer to your servlet container documentation for more
+    information.)</li>
   <li>Once the WAR is successfully installed, test it by pointing the web
     browser to the <strong>http://&lt;host :port&gt;/axis2. </strong>It
     should produce the following page which is the <strong>Axis2 Web
@@ -309,43 +316,43 @@
   <p align="center"><strong><img src="images/clip_image006.jpg"
   alt=""></strong></p>
   <li>Use the link "Validate" to ensure that everything is fine and smooth.
-    If the validation fails then the war has failed to install properly or
-    some essential jars are missing. At such a situation the documentation of
-    the particular servlet container should be consulted to find the problem.
-    The following page is a successful validation. Note the statement core
-    Axis2 libraries are present.</li>
+    If the validation fails then the WAR has failed to install properly or
+    some essential jars are missing. In such a situation, refer to the
+    documentation of the particular servlet container to find the problem.
+    The following page is a successful validation. Note that the statement
+    core Axis2 libraries are present.</li>
 </ol>
 
 <p align="center"><img src="images/happyaxis.jpg"></p>
 <a name="upload"></a>
 
 <p><strong>Note:</strong> For any Application server specific installation
-information please refer <a href="app_server.html">Application Server
+information please refer to the <a href="app_server.html">Application Server
 Specific Configuration Guide</a>.</p>
 
 <h2>Uploading Services</h2>
 <ol>
   <p>The Axis2 Web application also provides an interface to upload services.
   Once a service is created according to the service specification as
-  described in <a name="adv-userguide.html" target="_blank">Advance User's
-  Guide</a> that jar file can be uploaded using the upload page.</p>
+  described in the <a name="adv-userguide.html" target="_blank">Advance
+  User's Guide</a>, that .jar file can be uploaded using the upload page.</p>
 
   <p align="center"><strong><img src="images/clip_image010.jpg"
   alt=""></strong></p>
 
-  <p>The uploaded jar files will be stored in the default service directory.
-  For Axis2 this will be the &lt;webapps&gt;/axis2/WEB-INF/services
-  directory. Once a service is uploaded it will be installed instantly.</p>
+  <p>The uploaded .jar files will be stored in the default service directory.
+  For Axis2, this will be the &lt;webapps&gt;/axis2/WEB-INF/services
+  directory. Once a service is uploaded, it will be installed instantly.</p>
   <a name="hot_deployment"></a>
 
-  <p>Since Axis2 supports <strong>hot deployment</strong> one can drop the
+  <p>Since Axis2 supports <strong>hot deployment</strong>, you can drop the
   service jar directly through the file system to the above mentioned
   services directory. It will also cause the service to be automatically
   installed without the container being restarted.</p>
 
   <p>Use the 'Services' link on the Web Application home page to check the
   successful installation of a service. The services and the operations of
-  successfully installed services will be displayed in the available services
+  successfully installed services will be displayed on the available services
   page.</p>
 
   <p align="center"><img src="images/clip_image012.jpg" alt=""></p>
@@ -353,8 +360,8 @@
   <p></p>
 
   <p>If the service has deployment time errors it will list those services as
-  faulty services. If you click on the link you can see the deployment fault
-  error message(s).</p>
+  faulty services. If you click on the link, you will see the deployment
+  fault error messages.</p>
 
   <p align="center"><img src="images/faultservice.jpg" alt=""></p>
 
@@ -366,8 +373,8 @@
   <p></p>
 
   <p>Axis2 Administration is all about configuring Axis2 at the run time and
-  the configuration will be transient. More descriptions are available in <a
-  href="webadminguide.html" target="_blank">Axis2 Web Administration
+  the configuration will be transient. More descriptions are available in the
+  <a href="webadminguide.html" target="_blank">Axis2 Web Administration
   Guide</a></p>
 </ol>
 <a name="advanced"></a>
@@ -376,14 +383,14 @@
 <a name="source"></a>
 
 <h2>Axis2 Source Distribution</h2>
-<a name="_Toc96698083"></a> Using the Source Distribution both binary files
-(which is downloadable as the <a href="#std-bin">Standard Binary
-Distribution</a>) and axis2.war file (which is downloadable as the <a
-href="#war1">WAR distribution</a>) can be built using maven commands.
+<a name="_Toc96698083"></a> By using the Source Distribution, both binary
+files (which can be downloaded as the <a href="#std-bin">Standard Binary
+Distribution</a>) and the axis2.war file (which can be downloaded as the <a
+href="#war1">WAR distribution</a>) can be built using Maven commands.
 
 <p>Required jar files do not come with the distribution and they will also
-have to be built by running the maven command. Before we go any further it is
-necessary to install <a href="http://maven.apache.org/maven-1.x/"
+have to be built by running the maven command. Before we go any further, it
+is necessary to install <a href="http://maven.apache.org/maven-1.x/"
 target="_blank">Maven</aandsettheEnvironment.Thenextsectionwillguideyouhowtodojustthat.></a></p>
 <a name="env-src"></a>
 
@@ -394,11 +401,12 @@
 
 <p>The Axis2 build is based on <a href="http://maven.apache.org/maven-1.x/"
 target="_blank">Maven </a>. Hence the only prerequisite to build Axis2 from
-source distribution is to have Maven installed. Extensive instruction guides
-are available at the Maven site. This guide however 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/maven-1.x/start/index.html"
-target="_blank">here </a>.</p>
+the source distribution is to have Maven installed. Extensive instruction
+guides are available at the Maven site. This guide however 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/maven-1.x/start/index.html"
+target="_blank">this site.</a></p>
 <ul>
   <li>MS Windows</li>
 </ul>
@@ -407,8 +415,8 @@
   <li>Set the 'Environment Variables' ( create system variable MAVEN_HOME and
     edit path. eg: "C:\Program Files\Apache Software Foundation\maven-1.0.2";
     path %MAVEN_HOME%\bin)</li>
-  <li>Make sure that system variable JAVA_HOME is set to the location of your
-    JDK, eg. C:\Program Files\Java\jdk1.5.0_02</li>
+  <li>Make sure that the system variable JAVA_HOME is set to the location of
+    your JDK, eg. C:\Program Files\Java\jdk1.5.0_02</li>
   <li>Run maven --version to verify that it is correctly installed.</li>
 </ol>
 
@@ -420,18 +428,17 @@
 
 <p>The tar ball or the zip archive is the best option. 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/download.html#Installation"
-target="_blank">here </a>.</p>
+variable MAVEN_HOME and add MAVEN_HOME/bin to the path as well. <a
+href="http://maven.apache.org/download.html#Installation">More
+instructions</a> for installing Maven in Unix based operating systems.</p>
 
-<p>Once maven is properly installed you can start building Axis2.</p>
+<p>Once Maven is properly installed, you can start building Axis2.</p>
 
 <p><a href="../faq.html#d4">Maven commands that are frequently used</a> in
 Axis2 are listed on the <a href="../faq.html">FAQs</a> page.</p>
 <a name="_Toc96698085"></a>
 
-<h3>Building Binaries and WAR File Using the Source Distribution</h3>
+<h3>Building Binaries and the WAR File Using the Source Distribution</h3>
 
 <p>The Source Distribution is available as a zipped archive. All the
 necessary build scripts are included with the source distribution. Once the
@@ -447,9 +454,9 @@
 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>
+built first) it will take a while since the required jars need to be
+downloaded. However, this is a once only process and will not affect any
+successive builds.</strong></p>
 <a name="war"></a>
 
 <p><strong></strong>The default maven build will however build only the Axis2



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org