You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ra...@apache.org on 2004/12/16 14:55:15 UTC

cvs commit: ws-axis/site/src/documentation/content/xdocs/cpp winuser-guide.ihtml linuser-guide.ihtml lininstall-guide.ihtml

rangika     2004/12/16 05:55:15

  Modified:    site/src/documentation/content/xdocs/cpp winuser-guide.ihtml
                        linuser-guide.ihtml lininstall-guide.ihtml
  Log:
  Added ssl client details, session header details and IPV6 transport details to the docs.
  
  Revision  Changes    Path
  1.24      +100 -1    ws-axis/site/src/documentation/content/xdocs/cpp/winuser-guide.ihtml
  
  Index: winuser-guide.ihtml
  ===================================================================
  RCS file: /home/cvs/ws-axis/site/src/documentation/content/xdocs/cpp/winuser-guide.ihtml,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- winuser-guide.ihtml	8 Dec 2004 10:50:46 -0000	1.23
  +++ winuser-guide.ihtml	16 Dec 2004 13:55:15 -0000	1.24
  @@ -24,7 +24,13 @@
   
   <a href="#transport">Axis Transport and Parser Library</a><br>
   
  -<a href="#handlers">Handlers</a><br><br>
  +<a href="#handlers">Handlers</a><br>
  +
  +<a href="#ssl">SSL Client</a><br> 
  +
  +<a href="#session">Session Headers</a><br> 
  +
  +<a href="#IPV6"> IPV6</a> <br> <br> <br>
   
   <b>Before you follow this guide, please make sure that you have followed the</b> <a
   href="wininstall-guide.html"><b>Windows Installation guide</b>
  @@ -410,5 +416,98 @@
   <br>
   b.	testHandler
   (Axis_Extract/samples/client/testHandler)</p>
  +<p>
  +<a name="ssl"> </a> </p>
  +<h2>SSL Client</h2>
  +<p>
  +This section describes how to use an Axis C++ SSL secure client to access web services hosted on a secure web service. <br> <br>
  +The SSL implementation for the client in Axis C++ uses the openssl opensource library. <br> <br>
  +To aid to compile the secure channel dll <br> <br>
  +1. Install the openssl 0.9.7e binary distribution. <br>
  +2. Copy the include files from the openssl installation to c\include\openssl in your distribution<br>
  +3. Copy libs found in \lib\VC of the openssl installation to c\lib\openssl <br> <br>
  +
  +Now use the vc project in c\vc\transport\Axis2\Axis2SSLChannel to compile the Secure channel dll. <br> <br>
  +
  +Paste this dll where the Axis C++ client can load it (i.e %PATH%) OR specify the path to it in the axiscpp.conf 
  +under the key "Channel_ssl" (e.g Channel_ssl:c:\Axis2SSLChannel.dll) <br> <br>
  +
  +Now when you run any client using a url of the form https://...... the client will use SSL to connect to the relevant secure service specified by the url. The client request must be directed at a "secure webserver" which has the relevant 
  +web service hosted.</p>
  +
  +<br> <br>
  +
  +<p><a name="session"> </a></p>
  +<h2>Session Headers</h2>
  +<p>The following text explains how to deploy and run the SOAP Header based sample client with Axis Java web service <br> <br>
  +<b>Deploying the Web Service</b> <br> <br> </p>
  +<p>c\samples\server\session\headers folder contains the sources (inside the counters folder, which is the package of these classes)  needed to build the Axis java service needed to run the soap header based session client
  +(These server side skeletons were generated from the Counter.wsdl) <br> <br>
  +
  +
  +Compile these java source files and deploy them in Axis java (visit http://ws.apache.org/axis/java/index.html on how to 
  +achieve this) <br> <br>
  +
  +
  +Put the following element in the <globalConfiguration> section in the server-config.wsdd to enable SOAP header based 
  +session handling for Axis Java <br> <br>
  +<b>&lt;handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/&gt; </b> <br> <br>
  +
  +The following should be put in the server-config.wsdd of Axis java for this service to behave as having session scope <br> <br>
  +
  +&lt;service name="CounterService" provider="java:RPC"&gt; <br>
  +&lt;parameter name="scope" value="session"/&gt;<br>
  +&lt;requestFlow&gt; <br>
  +&lt;handler type="session"/&gt;<br> 
  +&lt;/requestFlow&gt; <br>
  +&lt;responseFlow&gt; <br>
  +&lt;handler type="session"/&gt; <br> 
  +&lt;/responseFlow&gt; <br>
  +  &lt;parameter name="allowedMethods" value="*"/&gt; <br>
  +  &lt;parameter name="className" value="counters.CounterSoapBindingImpl"/&gt; <br>
  +  &lt;namespace&gt;http://xml.apache.org/axis/wsdd/&lt;/namespace&gt; <br>
  +&lt;/service&gt; <br> <br> </p>
  +
  +<p>
  +Since Axis c++ doesn't support multiref yet, Axis java multiref should be disabled by putting the element <br> <br>
  +&lt;parameter name="sendMultiRefs" value="false"/&gt; <br> 
  +under &lt;globalConfiguration&gt; <br> <br>
  +
  +Start Axis java (visit http://ws.apache.org/axis/java/index.html on how to achieve this)<br> <br>
  +
  +Generating the client stubs and building the client and running the client. <br> <br> </p>
  +
  +<p>Use the vc workspace \c\vc\samples\client\session\Headers\Headers.dsw to compile the client side handler for this sample <br> <br>
  +
  +Run the command java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws ../Counter.wsdl -o./gen_src -lc++ -sclient 
  +from within c\samples\client\session\headers\sessionclient to generate the client stubs <br> <br>
  +
  +Compile the client application using the vc workspace at <br>
  +\c\vc\samples\client\session\Headers\Headers.dsw <br> <br>
  +
  +Host the service in Axis java (Check c/samples/server/session/headers/readme.txt on how to do this). <br> <br>
  +
  +Configure the client to use the provided client.wsdd from axiscpp.conf (make appropriate changes if necessary 
  +in the client.wsdd to the absolute path of the handler )<br> <br>
  +
  +Run the tcpMonitor and configure it to check the conversation between the client and server <br> <br>
  +
  +Run the client in the following fashion <br> <br>
  +sessionClient count 1 http://localhost:8080/axis/services/CounterService <br> <br>
  +
  +
  +Inspect the SOAP messages in tcpMonitor to see the values returned by the server incremented by 1 each 
  +time (as done throught the client). Counting starts at the value 97, which is set at the server side web service. <br>
  +</p>
  +
  +<br> 
  +
  +<p><a name="IPV6"> </a></p>
  +<h2>IPV6</h2>
  +<p>The source is in src/transport/axis2/ipv6/ </p> <br>
  +<p>We need the 2 additional headers that comes with the IPv6Kit. <br> <br>
  +Can be downloaded from <a href="http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp">http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp </a> <br> <br>
  +Extract the package and copy the tpipv6.h and wspiapi.h headers in inc folder to $AXISCPP_HOME/include. <br> <br>
  + That would compile the axis2ipv6 VC++ project. </p>
   </body>
   </html>
  
  
  
  1.20      +91 -52    ws-axis/site/src/documentation/content/xdocs/cpp/linuser-guide.ihtml
  
  Index: linuser-guide.ihtml
  ===================================================================
  RCS file: /home/cvs/ws-axis/site/src/documentation/content/xdocs/cpp/linuser-guide.ihtml,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- linuser-guide.ihtml	15 Dec 2004 10:55:42 -0000	1.19
  +++ linuser-guide.ihtml	16 Dec 2004 13:55:15 -0000	1.20
  @@ -12,6 +12,8 @@
   </div>
   <dl>
   <dt>
  +
  +<br>
   <a href="#Introducti">Introduction&nbsp;</a>
   </dt>
   <dt>
  @@ -49,6 +51,9 @@
   </dd>
   <dd>
   <a href="#ssl">SSL Client</a>
  +</dd>
  +<dd>
  +<a href="#session">Session Headers</a>
   <br>
   </dd>
   <dd>
  @@ -198,8 +203,9 @@
   <p> There are two options to create the wsdl2ws.jar tool<br> <br>
   <b> 1st Option is using ANT (This is more reliable) </b> <br> <br>
   In your PATH environment variable add path to &lt;antinstall dir&gt/bin. <br> 
  -<strong>$ cd $AXISCPP_HOME/src/wsdl/</strong> 
  -$ ant 
  +<strong>$ cd $AXISCPP_HOME/src/wsdl/</strong>
  +<br>
  +<strong>$ ant </strong>
   </p>
   <p> <b>2nd Option (Some users have experienced difficulties in using this option)</b> </p>
   <p><strong>$ cd $AXISCPP_HOME/src/wsdl/</strong>
  @@ -332,22 +338,15 @@
   <strong>&nbsp;}</strong>
   </p>
   <p>Then build by<br> 
  -<strong>cd $AXISCPP_HOME/samples/client</strong>
  +<strong>cd $AXISCPP_HOME/samples/client/simple</strong>
   <br>
   </p>
   <p>
  -<strong>sh build.sh</strong>
  +<strong>g++ *.cpp -I$AXISCPP_HOME/include -L$AXISCPP_DEPLOY/lib -ldl -laxiscpp_client -ocalculator</strong>
   <br>Then to run the calculator sample</p>
  +
   <p>
  -<strong>$ cd AXISCPP_HOME/samples/simple</strong>
  -</p>
  -<p>
  -<strong>./calculator &lt;server&gt; &lt;port&gt; &nbsp;&lt;command&gt; &nbsp;&lt;param1&gt; &nbsp;&lt;param2&gt;</strong>
  -<br>
  -<br> Example:<br>
  -</p>
  -<p>
  -<strong>./calculator locathost 80 add 10 20</strong>
  +<strong>./calculator add 10 5 http://locathost/axis/Calculator</strong>
   </p>
   <p>
   <br>
  @@ -362,7 +361,7 @@
   <p>Basically this will include all the Interoptest Samples and calculator sample.</p>
   <br>
   <p>
  -<strong>cd $AXISCPP_HOME/samples/server</strong>
  +<strong>cd $AXISCPP_HOME/samples</strong>
   </p>
   <p>
   <strong>$ sh autogen.sh</strong>
  @@ -377,15 +376,7 @@
   <strong>$ make install<br>
   </strong>
   </p>
  -<p>
  -<strong>OR<br>
  -</strong>
  -</p>
  -<p>
  -<strong>$ sh build.sh&nbsp;<br>
  -</strong>
  -</p>
  -<p>Once you type the above command all the samples will be deployed in $AXIS_HOME/webservices folder.<br>you also have sample $AXIS_HOME/conf/server.wsdd_linux file which you should rename to server.wsdd,<br>which contain all the neccessary entries for these sevices.<br>
  +<p>Once you type the above command all the server samples will be deployed in $AXISCPP_DEPLOY/lib folder.<br>you also have sample $AXISCPP_DEPLOY/conf/server.wsdd_linux file which you should rename to server.wsdd,<br>which contain all the neccessary entries for these sevices. Sample clients will be installed in $AXISCPP_DEPLOY/bin<br>
   <br>
   </p>
   <strong>Restart Apache</strong>
  @@ -394,42 +385,21 @@
   <a name="scls"></a>
   </p>
   <br>
  -<div class="h3">
  -<h3>Building Client Side of the provided samples</h3>
  -</div>
  -<p>
  -<strong>cd $AXISCPP_HOME/samples/client</strong>
  -</p>
  -<p>
  -<strong>$ sh autogen.sh</strong>
  -</p>
  -<p>
  -<strong>$ sh runconfig</strong>
  -</p>
  -<p>
  -<strong>$ make</strong>
  -</p>
  -<p>
  -<strong>$ make install<br>
  -</strong>
  -</p>
  -<p>
  -<strong>OR<br>
  -</strong>
  -</p>
  -<strong>$ sh build.sh</strong>
  -<br>
  -<br>
  -<p>sample executables will be created in your current folder.<br>to run samples one by one</p>
  +To run the samples
  +<br><br>
  +<strong>$ cd $AXISCPP_DEPLOY/bin </strong>
   <p>
  -<strong><strong>$ ./base localhost 80 &nbsp;</strong></strong>
  +<strong><strong>$ ./base http://localhost/axis/base &nbsp;</strong></strong>
   </p>
   <p>
   <strong><strong>
   <br>
   </strong></strong>
   </p>
  -<p>to run all the samples at once<br>sh run_interoptests.sh (Note: local host and port 80 is assumed)</p>
  +<p>to run all the samples at once<br>sh run_interoptests.sh Note: local host and port 80 is assumed.
  +   If you have different use.</p>
  +<br>
  +<strong>$ sh run_interoptests.sh -u http://yourserver:yourport/axis </strong>
   <p>
   <strong></strong>
   </p>
  @@ -571,6 +541,8 @@
   </p>
   <br>
   
  +<br>
  +
   <p><a name="ssl"></a> </p>
   <h3>SSL Client </h3>
   <p>To build the ssl channel library configure with <br>
  @@ -584,6 +556,73 @@
   Currently I use openssl libraries for ssh tunnelling. <br> <br>
   The API to write a new ssl channel library(using a library other than openssl) is in <b>src/transport/SSLChannel.hpp </b> <br> <br>
   All openssl ssl related implementations are  in <b>src/transport/axis2/ssl folder</b> 
  +
  +<br> <br>
  +
  +<p><a name="session"></a> </p>
  +<h3>Session Headers</h3>
  +<p>The following text explains how to deploy and run the SOAP Header based sample client with Axis Java web service <br> <br>
  +<b>Deploying the Web Service</b> <br> <br> </p>
  +<p>c\samples\server\session\headers folder contains the sources (inside the counters folder, which is the package of these classes)  needed to build the Axis java service needed to run the soap header based session client
  +(These server side skeletons were generated from the Counter.wsdl) <br> <br>
  +
  +
  +Compile these java source files and deploy them in Axis java (visit http://ws.apache.org/axis/java/index.html on how to 
  +achieve this) <br> <br>
  +
  +
  +Put the following element in the <globalConfiguration> section in the server-config.wsdd to enable SOAP header based 
  +session handling for Axis Java <br> <br>
  +<b>&lt;handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/&gt; </b> <br> <br>
  +
  +The following should be put in the server-config.wsdd of Axis java for this service to behave as having session scope <br> <br>
  +
  +&lt;service name="CounterService" provider="java:RPC"&gt; <br>
  +&lt;parameter name="scope" value="session"/&gt;<br>
  +&lt;requestFlow&gt; <br>
  +&lt;handler type="session"/&gt;<br> 
  +&lt;/requestFlow&gt; <br>
  +&lt;responseFlow&gt; <br>
  +&lt;handler type="session"/&gt; <br> 
  +&lt;/responseFlow&gt; <br>
  +  &lt;parameter name="allowedMethods" value="*"/&gt; <br>
  +  &lt;parameter name="className" value="counters.CounterSoapBindingImpl"/&gt; <br>
  +  &lt;namespace&gt;http://xml.apache.org/axis/wsdd/&lt;/namespace&gt; <br>
  +&lt;/service&gt; <br> <br> </p>
  +
  +<p>
  +Since Axis c++ doesn't support multiref yet, Axis java multiref should be disabled by putting the element <br> <br>
  +&lt;parameter name="sendMultiRefs" value="false"/&gt; <br> 
  +under &lt;globalConfiguration&gt; <br> <br>
  +
  +Start Axis java (visit http://ws.apache.org/axis/java/index.html on how to achieve this)<br> <br>
  +
  +Generating the client stubs and building the client and running the client. <br> <br> </p>
  +
  +<p>Compile the sessionhandler using the sources in c\samples\client\session\headers\sessionhandler <br> <br>
  +Run the command java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws ../Counter.wsdl -o./gen_src -lc++ -sclient 
  +from within c\samples\client\session\headers\sessionclient to generate the client stubs <br> <br>
  +
  +Compile the client application using  the following command from within c\samples\client\session\headers\sessionclient <br> <br>
  +
  +g++ CounterClient.cpp gen_src/*.cpp -Igen_src <br>
  +I$AXISCPP_HOME/include -L$AXISCPP_DEPLOY/lib -ldl <br>
  +laxiscpp_client -oclient <br> <br>
  +
  +Host the service in Axis java (Check c/samples/server/session/headers/readme.txt on how to do this). <br> <br>
  +
  +Configure the client to use the provided client.wsdd from axiscpp.conf (make appropriate changes if necessary 
  +in the client.wsdd to the absolute path of the handler )<br> <br>
  +
  +Run the tcpMonitor and configure it to check the conversation between the client and server <br> <br>
  +
  +Run the client in the following fashion <br> <br>
  +sessionClient count 1 http://localhost:8080/axis/services/CounterService <br> <br>
  +
  +
  +Inspect the SOAP messages in tcpMonitor to see the values returned by the server incremented by 1 each 
  +time (as done throught the client). Counting starts at the value 97, which is set at the server side web service. <br>
  +</p>
   
   <br>
   <div id="pdf" align="right">
  
  
  
  1.24      +161 -242  ws-axis/site/src/documentation/content/xdocs/cpp/lininstall-guide.ihtml
  
  Index: lininstall-guide.ihtml
  ===================================================================
  RCS file: /home/cvs/ws-axis/site/src/documentation/content/xdocs/cpp/lininstall-guide.ihtml,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- lininstall-guide.ihtml	16 Dec 2004 05:25:18 -0000	1.23
  +++ lininstall-guide.ihtml	16 Dec 2004 13:55:15 -0000	1.24
  @@ -20,263 +20,182 @@
   <li>
   <a href="#Install">Installing Axis C++</a>
   </li>
  +<li style="list-style: none">
   <br>
  -
  -<p><b>Note:</b>The Expat XML Parser module is not currently maintained and also contains some bugs. So it is removed from the 1.4 release. Please ignore any references to the Expat parser 
  -in the documentation. The documentation will be updated regarding this later.
  -</p>
  -
  -
  -
  +</li>
  +</ul>
   <p>
   <a name="Introduction"></a>
   </p>
  -
  -
  -<h1>Introduction</h1>
  -
  -<p>This guide will help you to start with Axis C++. This guide will explain the
  -minimum steps needed to build and run Axis C++, and warn you about the
  -common pitfalls.</p>
  -
  +<div class="h3">
  +<h3>Introduction</h3>
  +</div>
  +<p>This guide will help you to start with Axis C++. This guide will explain the minimum steps needed to build and run Axis C++, and warn you about the common pitfalls.</p>
   <p>
   <a name="What"></a>
   </p>
  -
  -<h1>What You Need</h1>
  -
  -
  -<p>You need a few helper libraries for parsing XML, WSDL processing and
  -introspection. You need to have the following in order to run Axis C++
  -engine.</p>
  -
  -<p>&nbsp; &nbsp; &nbsp; <a href="http://httpd.apache.org/download.cgi">Apache web server </a> (2.0.x or 1.3.x)&nbsp; - You
  -need to have Apache built with module so support, hence you need to
  -have the source of Apache web server.<br><br> 
  -
  -Axis C++ uses Apache web server to host services.<br> </p>
  -
  +<div class="h3">
  +<h3>What You Need</h3>
  +</div>
  +<p>You need a few helper libraries for parsing XML, WSDL processing and introspection. You need to have the following in order to run Axis C++ engine.</p>
  +<p>&nbsp; &nbsp; &nbsp; <a href="http://httpd.apache.org/download.cgi">Apache web server</a> (2.0.x or 1.3.x)&nbsp; - You need to have Apache built with module so support, hence you need to have the source of Apache web server.<br>
  +<br> Axis C++ uses Apache web server to host services.<br>
  +</p>
  +<br>
  +<p>&nbsp; &nbsp; &nbsp; <a href="http://sourceforge.net/projects/expat/">Expat (1.95.7)</a> and/or <a href="http://archive.apache.org/dist/xml/xerces-c/Xerces-C_2_2_0/">Xerces C++ (2.2.0)</a> XML parser(s)<br>
  +<br> Axis C++ needs an XML parser to parse SOAP messages and WSDD files. It has a parser abstraction layer that helps users to select/switch between parsers. However only one parser library could be used at a time. Currently only Xerces parsers are supported by Axis C++. Earlier Expat parser was also in use, but due to lack of maintainance it is now under graveyard.(graveyard is the place where obsolete modules were put into rest. If somebody wants to resurrect them go to the graveyard in $AXISCPP_HOME/graveyard) <br>
  +</p>
  +<br>
  +<p>
  +<a name="Install"></a>
  +</p>
  +<div class="h3">
  +<h3>Installing Axis C++</h3>
  +</div>
  +<div class="h4">
  +<h4>1. Install Apache Web Server</h4>
  +</div>
  +<p>In case you have already installed Apache , make sure that 'so modules' are enabled.<br> This is because Axis C++ server engine is implemented as a 'so module'. (For Apache 1.3.x use --enable-module=so; for Apache 2.0.x use --enable-so when configuring. See Apache web server documentation for more details)</p>
  +<div class="h4">
  +<h4>2. Install Expat (1.95.7) and/or Xerces C++ (2.2.0)</h4>
  +</div>
  +<p>Select an XML parser depending on your parser preferences. See the respective parser's documentation for installation instructions.</p>
  +<div class="h4">
  +<h4>3. Download Axis C++</h4>
  +</div>
  +<p>
  +<a href="http://ws.apache.org/axis/cpp/download.html">Download Axis C++</a> source or binary distribution and extract the package.</p>
  +<div class="h4">
  +<h4>4. Define the Environment Variables.</h4>
  +</div>
  +<p>
  +<strong>AXISCPP_HOME="Path to Axis C++ source or binary extracted folder"</strong>
  +<br> e.g. <strong>AXISCPP_HOME="/my/home/axiscpp"</strong>
  +<br>
  +<br> 
  +<strong>AXISCPP_DEPLOY="Path to the folder where you want to install Axis C++"</strong>
  +<br> e.g. <em>AXISCPP_DEPLOY="/usr/local/axiscpp_deploy"</em>
  +<br> 
  +<strong>LD_LIBRARY_PATH="&lt;path to parser library you use&gt;/lib:$AXISCPP_DEPLOY/lib:$LD_LIBRARY_PATH"</strong>
  +<br> 
  +<strong>export AXISCPP_HOME AXISCPP_DEPLOY LD_LIBRARY_PATH</strong>
  +</p>
  +<div class="h4">
  +<h4>5. Build Axis C++</h4>
  +</div>
  +<p>
  +<strong>Note:</strong> If you have downloaded Axis C++ binaries, you can skip this step<br>
  +<br>
  +<strong>cd $AXISCPP_HOME</strong>
  +<br>
  +<br> 
  +<strong>./configure --prefix=$AXISCPP_DEPLOY --with-apache2=/path/to/Apache2 \&nbsp;&nbsp;&nbsp;&nbsp;--with-xercesc=/path/to/xerces-c</strong>
  +<br> 
  +<strong>make</strong>
  +<br> 
  +<strong>make install</strong>
  +<br>
  +<br> The above set of instructions assume you have Apache 2.0.x web server and Xerces C++ parser.<br>For more information on build options run <strong><em>./configure --help</em></strong>.<br>
  +<br>The libs created in build process are placed in $AXISCPP_DEPLOY/lib. (Provided that you used $AXISCPP_DEPLOY as --prefix option for configuring). Note that you need permission to install to the specified directory given in prefix option.<br> &nbsp;<br>You need global access rights to the Axis C++ deploy folder to make sure that Axis C++ works properly.<br>
  +<br> 
  +<em>chmod -R 777 $AXISCPP_DEPLOY</em>
  +</p>
  +<div class="h4">
  +<h4>6. Configure Apache Module</h4>
  +</div>
  +<p>
  +<strong>Note:</strong> to execute the following steps, you may need to have <strong>super user rights</strong> on your machine.<br>
  +<br> Now you need to edit <strong>httpd.conf</strong> file in &lt;path to Apache web server installation&gt;/conf and add the following lines at the bottom of that file (assuming you are using Apache 2.0.x):<br>
  +<br> 
  +<strong>LoadModule axis_module modules/libaxiscpp_mod2.so</strong>
   <br> 
  -
  -<p>&nbsp; &nbsp; &nbsp; <a href="http://sourceforge.net/projects/expat/">Expat (1.95.7) </a> (<b>Note:</b>The Expat XML Parser module is not currently maintained and also contains some bugs. For more information refer the contents section.)<br> <br>
  -
  -and/or <br> <br>
  -<a href="http://archive.apache.org/dist/xml/xerces-c/Xerces-C_2_2_0/">Xerces C++ (2.2.0)</a> XML parser(s)<br> <br>
  -
  -Axis C++ needs an XML parser to parse SOAP messages and WSDD files. It
  -has a parser abstraction layer that helps  users to select/switch between
  -parsers. However only one parser library could be used at a time. Currently Xerces parser is supported by Axis  C++.<br></p>
  -
  -<br>
  -
  -<p><a name="Install"></a>
  -</p>
  -
  -<h1>Installing Axis C++</h1>
  -
  -
  -
  -<h2>1. Install Apache Web Server </h2>
  -<p> In case you have already installed Apache
  -, make sure that 'so modules' are enabled. <br> This is because
  -Axis C++ server engine is implemented as a 'so module'. (For Apache
  -1.3.x use --enable-module=so; for Apache 2.0.x use --enable-so when
  -configuring. See Apache web server documentation for more details)</p> 
  -
  -<h2>2. Install Expat (1.95.7) and/or Xerces C++ (2.2.0) </h2>
  -<p><b>Note:</b>The Expat XML Parser module is not currently maintained and also contains some bugs. For more information refer the contents section.
  -</p>
  -<p>Select an XML parser depending on your parser preferences. See the respective parser's documentation for
  -installation instructions. </p> <br>
  -
  -
  -<h2>3. Download Axis C++</h2>
  -<p> <a href="http://ws.apache.org/axis/cpp/download.html">Download Axis C++</a> source or binary distribution and extract the  package.</p>
  -
  -<h2>4. Define the Environment Variables.</h2>
  -<p>
  -<b>AXISCPP_HOME="Path to Axis C++ source or binary extracted folder"</b><br>
  -
  -e.g. <b><i>AXISCPP_HOME="/my/home/axiscpp"</i></b><br>
  -
  -<br><b>
  -
  -AXISCPP_DEPLOY="Path to the folder where you want to install Axis C++"</b><br>
  -
  -e.g. <i><b>AXISCPP_DEPLOY="/usr/local/axiscpp_deploy"<br>
  -</b></i>
  -
  -<br><b>
  -
  -LD_LIBRARY_PATH="&lt;path to parser library you use&gt;/lib:$AXISCPP_DEPLOY/lib:$LD_LIBRARY_PATH"<br>
  -</b>
  -
  -<br><b>
  -
  -export AXISCPP_HOME AXISCPP_DEPLOY LD_LIBRARY_PATH</b> </p>
  -
  -
  -<h2>5. Build Axis C++</h2>
  - 
  -<p> <b>Note:</b> The following steps are for Axis C++ source downloads.<br> <br>
  -<b>cd $AXISCPP_HOME </b> <br> <br>
  -
  -<b>./configure --prefix=$AXISCPP_DEPLOY --with-apache2=/path/to/Apache2 \<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;--with-xercesc=/path/to/xerces-c </b> <br>
  -<b> make </b> <br>
  -<b> make install</b><br>
  -<br>
  -
  -The above set of instructions assume you have Apache 2.0.x web server and Xerces C++ parser.<br>
  -For more information on build options run <strong><i>./configure --help</i></strong>.<br>
  -
  -<br>
  -The libs created in build process are placed in
  -$AXISCPP_DEPLOY/lib. (Provided that you used $AXISCPP_DEPLOY as
  ---prefix option for configuring). Note that you need permission to install to the 
  -specified directory given in prefix option.<br>
  -
  -&nbsp;<br></p>
  -
  -<p> <b>Note:</b> The following steps are common to both source and binary downloads.<br> <br>
  -
  -You need global access rights to the Axis C++ deploy folder to make sure that Axis C++ works properly.<br> <br>
  -
  -<i><b>chmod -R 777 $AXISCPP_DEPLOY</b></i> </p>
  -
  -<h2>6. Configure Apache Module</h2>
  -<p>
  -<b>Note:</b> to execute the following steps, you may need to have <strong>super user rights</strong> on your machine.
  -<br>
  -<br>
  -
  -Now you need to  edit
  -<b>httpd.conf</b> file in &lt;path to Apache web server installation&gt;/conf
  -and add the following lines at the bottom of that file (assuming you
  -are using Apache 2.0.x):<br>
  -
  -<br>
  -
  -<b>LoadModule axis_module modules/libaxiscpp_mod2.so</b><br>
  -
  -<b>&lt;Location /axis&gt;</b><br>
  -<b>SetHandler axis </b> <br>
  -<b>&lt;/Location&gt;</b><br>
  -<br>
  -For Apache1.3.x LoadModule line should read as:<br>
  -
  -<b>LoadModule axis_module libexec/libaxiscpp_mod.so</b> </p>
  -
  -<h2>7. Configure Server Deployment Descriptor File</h2>
  -<p>
  -Now you need the server deployment descriptor (server.wsdd) to deploy server samples you built.<br>
  -
  -There is a sample deployment descriptor called server.wsdd_linux in $AXISCPP_DEPLOY/etc to help to deploy samples.<br>
  -
  -Edit this file to match your system settings (because the server.wsdd_linux file assumes that you have installed the binaries in /usr/local/axiscpp_deploy, you may need to change the folder names) and copy it to server.wsdd.
  -<br>
  -server.wsdd file is an XML file, and the contents are self descriptive. </p>
  -
  -<h2>8. Set Engine Wide Settings in Configuration File</h2>
  -<p>
  -Axis C++ uses a configuration file to let the user specify preferences
  -such as log file locations, transport and parser libs to be used and
  -location of deployment descriptor files. <br> A sample configuration file 
  -named axiscpp.conf_linux is installed in $AXISCPP_DEPLOY/etc folder. Edit this
  -file to match your systems settings (because the axiscpp.conf_linux file assumes that you have installed the binaries in /usr/local/axiscpp_deploy, you may need to change the folder names) and copy it to axiscpp.conf<br>
  -
  -<br>
  -
  -Configuration file has the following <b>Syntax:</b> </p> <br>
  -
  -<p> The comment character is '#'<br>
  -WSDDFilePath - Path to the server wsdd file<br>
  -ClientWSDDFilePath - Path to the client wsdd<br>
  -LogPath - Path to the Axis C++ server log<br> 
  -ClientLogPath - Path to the Axis C++ client log<br>
  -Transport_http - HTTP transport library<br>
  -XMLParser - XML parser library
  -</p>
  -<br>
  -<p>
  -A sample <b>axiscpp.conf</b> file: </p>
  -
  -<pre>
  -LogPath:/usr/local/axiscpp_deploy/log/AxisLog
  +<strong>&lt;Location /axis&gt;</strong>
  +<br>
  +<strong>SetHandler axis</strong>
  +<br>
  +<strong>&lt;/Location&gt;</strong>
  +<br>
  +<br>For Apache1.3.x LoadModule line should read as:<br> 
  +<strong>LoadModule axis_module libexec/libaxiscpp_mod.so</strong>
  +</p>
  +<div class="h4">
  +<h4>7. Configure Server Deployment Descriptor File</h4>
  +</div>
  +<p>Now you need the server deployment descriptor (server.wsdd) to deploy server samples you built.<br> There is a sample deployment descriptor called server.wsdd_linux in $AXISCPP_DEPLOY/etc to help to deploy samples.<br> Edit this file to match your system settings (because the server.wsdd_linux file assumes that you have installed the binaries in /usr/local/axiscpp_deploy, you may need to change the folder names) and copy it to server.wsdd.<br>server.wsdd file is an XML file, and the contents are self descriptive.</p>
  +<div class="h4">
  +<h4>8. Set Engine Wide Settings in Configuration File</h4>
  +</div>
  +<p>Axis C++ uses a configuration file to let the user specify preferences such as log file locations, transport and parser libs to be used and location of deployment descriptor files.<br> A sample configuration file named axiscpp.conf_linux is installed in $AXISCPP_DEPLOY/etc folder. Edit this file to match your systems settings (because the axiscpp.conf_linux file assumes that you have installed the binaries in /usr/local/axiscpp_deploy, you may need to change the folder names) and copy it to axiscpp.conf<br>
  +<br> Configuration file has the following <strong>Syntax:</strong>
  +</p>
  +<br>
  +<p>The comment character is '#'<br>WSDDFilePath - Path to the server wsdd file<br>ClientWSDDFilePath - Path to the client wsdd<br>LogPath - Path to the Axis C++ server log<br> ClientLogPath - Path to the Axis C++ client log<br>Transport_http - HTTP transport library<br>XMLParser - XML parser library</p>
  +<br>
  +<p>A sample <strong>axiscpp.conf</strong> file:</p>
  +<pre>LogPath:/usr/local/axiscpp_deploy/log/AxisLog
   WSDDFilePath:/usr/local/axiscpp_deploy/etc/server.wsdd
   ClientLogPath:/usr/local/axiscpp_deploy/log/AxisClientLog
   XMLParser:/usr/local/axiscpp_deploy/lib/libaxis_xercesc.so
   Transport_http:/usr/local/axiscpp_deploy/lib/libaxis2_transport.so
   </pre>
  -
  -<h2>9. Deploying with Apache Web Server </h2>
  -
  -<p>Now we need to copy Apache module (libaxiscpp_mod2.so for Apache 2.0.x and 
  -libaxiscpp_mod.so for Apache 1.3.x) to the correct places and start Apache web server.
  -The steps to follow are:
  +<div class="h4">
  +<h4>9. Deploying with Apache Web Server</h4>
  +</div>
  +<p>Now we need to copy Apache module (libaxiscpp_mod2.so for Apache 2.0.x and libaxiscpp_mod.so for Apache 1.3.x) to the correct places and start Apache web server. The steps to follow are:</p>
   <ol>
  -<li> Copy libaxiscpp_mod2.so to /&lt;your Apache 2.0.x home&gt;/modules (or copy libaxiscpp_mod.so to /&lt;your Apache 1.3.x home&gt;/libexec)</li>
  -<li> Start Apache /&lt;path to Apache installation&gt;/bin/apachectl start </li>
  -</ol> 
  -
  -<p>
  -To do the same you can you can use scripts in $AXISCPP_DEPLOY/bin.</p>
  -
  -<b>cd $AXISCPP_DEPLOY/bin </b> <br> 
  -<p>                                       
  -To deploy with Apache 2.0.x </p>
  -<b>sh deploy_apache2.sh </b> <br>
  -<p>
  -To deploy with Apache 1.3.x </p>
  -<b>sh deploy_apache.sh </b> </br>
  -
  -<p> <b>Note:</b> please rename libaxis_xercesc.so (the default parser library) to libaxis_xmlparser.so. <br> <br> if you need to use a different parser or want to switch parsers time to time, you need to edit the script and comment out the line:
  - <br> <br>
  -<p><b>Note:</b>The Expat XML Parser module is not currently maintained and also contains some bugs. For more information refer the contents section.
  -</p>
  -
  -
  -<b><i> cp -f ${AXISCPP_DEPLOY}/lib/libaxis_xercesc.so ${AXISCPP_DEPLOY}/lib/libaxis_xmlparser.so </i></b> </br> <br>
  -and make sure that you have specified the name of the parser lib correctly in your config file ${AXISCPP_DEPLOY}/etc/axiscpp.conf. 
  -
  -<h2>10. See Axis C++ in action</h2>
  -<p>
  -Now the installation is complete. You can verify that the server side is working by accessing the URL <a  href="http://localhost/axis">http://localhost/axis</a> using your web browser. You should get the Axis C++ welcome page and this page will show you a list of deployed services as specified by the
  -$AXISCPP_DEPLOY/conf/server.wsdd file. </p> <br>
  -
  +<li>Copy libaxiscpp_mod2.so to /&lt;your Apache 2.0.x home&gt;/modules (or copy libaxiscpp_mod.so to /&lt;your Apache 1.3.x home&gt;/libexec)</li>
  +<li>Start Apache /&lt;path to Apache installation&gt;/bin/apachectl start</li>
  +</ol>
  +<p>To do the same you can you can use scripts in $AXISCPP_DEPLOY/bin.</p>
  +<strong>cd $AXISCPP_DEPLOY/bin</strong>
  +<br>
  +<p>To deploy with Apache 2.0.x</p>
  +<strong>sh deploy_apache2.sh</strong>
  +<br>
  +<p>To deploy with Apache 1.3.x</p>
  +<strong>sh deploy_apache.sh</strong>
  +<br>
  +<p>Note that these scripts rename libaxis_xercesc.so (the default parser library) to libaxis_xmlparser.so.<br>
  +<br> if you need to use a different parser or want to switch parsers time to time, you need to edit the script and comment out the line:<br> 
  +<strong>cp -f ${AXISCPP_DEPLOY}/lib/libaxis_xercesc.so ${AXISCPP_DEPLOY}/lib/libaxis_xmlparser.so</strong>
  +<br>
  +<br>and make sure that you have specified the name of the parser lib correctly in your config file ${AXISCPP_DEPLOY}/etc/axiscpp.conf.</p>
  +<div class="h4">
  +<h4>10. See Axis C++ in action</h4>
  +</div>
  +<p>Now the installation is complete. You can verify that the server side is working by accessing the URL <a href="http://localhost/axis">http://localhost/axis</a> using your web browser. You should get the Axis C++ welcome page and this page will show you a list of deployed services as specified by the $AXISCPP_DEPLOY/conf/server.wsdd file.</p>
  +<br>
   <p>Now you can run a client sample and see if it works.</p>
  -
  -<strong>cd $AXISCPP_DEPLOY/bin</strong>  <br>
  -<strong>./base</strong> 
  -
  -<p>To help you run several samples at once there is a script named
  -<b>run_interoptests.sh</b> in $AXISCPP_DEPLOY/bin folder. You can try running
  -that as well.
  -</p>
  -
  -<h2>11. Simple axis server installation </h2>
  -
  +<strong>cd $AXISCPP_DEPLOY/bin</strong>
  +<br>
  +<strong>./base</strong>
  +<p>To help you run several samples at once there is a script named <strong>run_interoptests.sh</strong> in $AXISCPP_DEPLOY/bin folder. You can try running that as well.</p>
  +<div class="h4">
  +<h4>11. Simple axis server installation</h4>
  +</div>
   <p>1. Build the source distribution as mentioned above.</p>
  -
  -<p>2. Make sure that you have set the  <b>AXISCPP_DEPLOY</b>  environment variable to point to your deployment folder as mentioned above </p>
  -
  -<p>3.Copy  <b> $AXISCPP_DEPLOY/etc/axiscpp.conf_linux</b>  to  <b>$AXISCPP_DEPLOY/etc/axiscpp.conf </b> <p>
  -<p>and make sure that the contents of that  file match your system settings </p>
  -
  -<p>4. Run simple axis server in  <b> $AXISCPP_DEPLOY/bin </b> <br>
  -Synopsis: simple_axis_server server-port Where server-port is the port on which you would like the server to listen for
  -client requests.</p>
  -
  -<p> For Example </p>
  -<p><b>cd $AXISCPP_DEPLOY/bin </b> </p>
  -<p><b>./simple_axis_server 9090</b> </p>
  -
  -<p>5. Run clients in <b> $AXISCPP_DEPLOY/bin </b> </p>
  -<p> On a different shell: </p>
  -<p><b>cd $AXISCPP_DEPLOY/bin </b> </p>
  -<p><b>./base http://localhost:9090/axis/base </b> </p>
  -<p>Similarly you could run the other samples. </p>
  -
  -
  +<p>2. Make sure that you have set the <strong>AXISCPP_DEPLOY</strong> environment variable to point to your deployment folder as mentioned above</p>
  +<p>3.Copy <strong>$AXISCPP_DEPLOY/etc/axiscpp.conf_linux</strong> to <strong>$AXISCPP_DEPLOY/etc/axiscpp.conf</strong>
  +</p>
  +<p>and make sure that the contents of that file match your system settings</p>
  +<p>4. Run simple axis server in <strong>$AXISCPP_DEPLOY/bin</strong>
  +<br>Synopsis: simple_axis_server server-port Where server-port is the port on which you would like the server to listen for client requests.</p>
  +<p>For Example</p>
  +<p>
  +<strong>cd $AXISCPP_DEPLOY/bin</strong>
  +</p>
  +<p>
  +<strong>./simple_axis_server 9090</strong>
  +</p>
  +<p>5. Run clients in <strong>$AXISCPP_DEPLOY/bin</strong>
  +</p>
  +<p>On a different shell:</p>
  +<p>
  +<strong>cd $AXISCPP_DEPLOY/bin</strong>
  +</p>
  +<p>
  +<strong>./base http://localhost:9090/axis/base</strong>
  +</p>
  +<p>Similarly you could run the other samples.</p>
   </body>
   </html>