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 ro...@apache.org on 2004/08/17 06:43:20 UTC

cvs commit: ws-axis/c/docs/linux/cpp lininstall-guide.html

roshan      2004/08/16 21:43:19

  Modified:    c/docs/linux/cpp lininstall-guide.html
  Log:
  Edited instructions in the Linux Installation Guide for relelase 1.3 alpha. Changed by Rangika
  
  Revision  Changes    Path
  1.9       +106 -131  ws-axis/c/docs/linux/cpp/lininstall-guide.html
  
  Index: lininstall-guide.html
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/docs/linux/cpp/lininstall-guide.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- lininstall-guide.html	20 Jul 2004 09:15:03 -0000	1.8
  +++ lininstall-guide.html	17 Aug 2004 04:43:19 -0000	1.9
  @@ -48,28 +48,18 @@
   libtool 1.4.3 <br> 
   gcc 3.2.2</b></p>
   <p> You can download the Axis C++ source or binary from one of the apache mirror sites <br>
  -    http://ws.apache.org/axis/cpp/download.html<br> <br>
  -You can get expat from the uri http://sourceforge.net/projects/expat/<br> <br>
  +    <a href="http://ws.apache.org/axis/cpp/download.html">http://ws.apache.org/axis/cpp/download.html</a><br> <br>
  +You can get expat from the uri <a href="http://sourceforge.net/projects/expat/">http://sourceforge.net/projects/expat/</a><br> <br>
   
  -You can get xercesc from the uri http://www.xml.apache.org/xerces-c/download.cgi<br> <br>
  +You can get xercesc from the uri <a href="http://xml.apache.org/xerces-c/download.cgi">http://xml.apache.org/xerces-c/download.cgi</a><br> <br>
   
  -You must define some environment variables in order to build.AXISCPP_HOME is where you checkout Axis C++</p>
  +You must define some environment variables in order to build. <br>
  +AXISCPP_HOME is where you checkout Axis C++</p>
   <br>
  -<p><b>AXISCPP_HOME="/home/damitha/projects/axiscpp"</b><br>
  -<b>AXIS_HOME="/usr/local/Axis"</b><br>
  -<b>EXPAT_HOME="/usr/local/expat1957"</b><br>
  -<b>XERCESC_HOME="/usr/local/xerces-c"</b><br>
  -<b>LD_LIBRARY_PATH="$XERCESC_HOME/lib:$EXPAT_HOME/lib:$AXISCPP_HOME/bin:$AXIS_HOME/libs:$LD_LIBRARY_PATH"</b><br>
  -<b>export AXISCPP_HOME AXIS_HOME XERCESC_HOME EXPAT_HOME LD_LIBRARY_PATH</b></p>
  -
  -<p><b>A note about AXIS_HOME</b></p>
  -<p>Copy $AXISCPP_HOME/deploy folder to a place of your choice and define AXIS_HOME pointing to it.<br>
  -<b>cp -rf $AXISCPP_HOME/deploy /usr/local/</b><br>
  -<b>mv /usr/local/deploy /usr/local/Axis</b><br>
  -Give read write permissions to /usr/local/Axis<br><br>
  -
  -<p>EXPAT_HOME points to the place where expat is installed  <br>
  -XERCESC_HOME points to the place where xereces-c is installed </p>
  +<p><b>AXISCPP_HOME="/usr/local/axiscpp"</b><br>
  +<b>AXISCPP_DEPLOY="/usr/local/axiscpp_deploy"</b><br>
  +<b>LD_LIBRARY_PATH="$AXISCPP_DEPLOY/lib:$LD_LIBRARY_PATH"</b><br>
  +<b>export AXISCPP_HOME AXISCPP_DEPLOY LD_LIBRARY_PATH</b><br> </p>
   
   <p>Axis C++ core is independant of the parser layer and transport layer.</p>
   <p>You can write your own transport or parser library according to the APIs provided. Currently Axis C++ provides API implementations for Xerces-c and Expat. It also provides it's own client side transport library implementation. In the server side deployment, Axis C++ provides two modules that can be loaded into apache1.3 and apache 2 as shared libraries.</p>
  @@ -77,7 +67,7 @@
   You can deploy Axis C++ server <br>
   &nbsp &nbsp On Apache2 with xercesc parser or expat parser(Only one parser at a time)<br>
   &nbsp &nbsp On Apache1.3 with xercesc parser or expat parser<br>
  -So if you use only Expat you don't have to define XERCESC_HOME vice versa.</p>
  +</p>
   
   <p><b>When you build Axis C++ you can give options</b></p>
   <p><b>1) Build for Apache2</b><br>
  @@ -88,100 +78,69 @@
      With Expat parser support only<br>
      With Xerces parser support only<br>
      With both parser support</p>
  -<p>You can choose these selections on $AXISCPP_HOME/configure.ac</p>
  -
  -<p>#<b>{apache2 block starts</p>
  -<p>#if you use apache2 <br>
  -#if you need to build both axis_expat and axis_xerces libraries</b><br>
  -
  -
  -<p>AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile<br> src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile <br> src/server/Makefile src/server/apache2/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile<br> src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile src/xml/xerces/Makefile)</p>
  -
  -<p><b>#if you need to build only axis_expat</b></p>
  -<p>#AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile<br> src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile<br>  src/server/Makefile src/server/apache2/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile<br> src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile)</p>
  -
  -<p><b>#if you need to build only axis_xerces</b></p>
  -<p>#AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile<br> src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile<br>  src/server/Makefile src/server/apache2/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile<br> src/client/Makefile src/client/adminclient/Makefile src/xml/xerces/Makefile)</p>
  -
  -<p><b>#apache2 block ends</b><br> <br>
  -                                                                                                                             
  -#<b>{apache1.3 block starts</b><br>
  -<p><b>#if you use apache1.3 and  you need to build both axis_expat and axis_xerces libraries</b></p>
  -<p>#AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile<br> src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile<br>  src/server/Makefile src/server/apache/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile<br> src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile src/xml/xerces/Makefile)</p>
  +<p>You can choose these selections when you configure</p>
   
  -<p><b>#if you need to build only axis_expat</b></p>
  -<p>#AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile<br> src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile<br>  src/server/Makefile src/server/apache/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile<br> src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile)</p>
  -
  -<p><b>#if you need to build only axis_xerces</b></p>
  -<p>#AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile<br> src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile<br>  src/server/Makefile src/server/apache/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile<br> src/client/Makefile src/client/adminclient/Makefile src/xml/xerces/Makefile)</p>
  -
  -<p><b>#}apache1.3 block ends</b></p> 
   <br>
   
  -<p>You also need to  do a selection at $AXISCPP_HOME/src/xml/Makefile.am</p>
  -<p><b>SUBDIRS = expat xerces #Here I build both expat and xerces libraries</b><br>
  -<b>#SUBDIRS = expat</b><br>
  -<b>#SUBDIRS = xerces</b></p>
  -<p>And again in $AXISCPP_HOME/src/server/Makefile.am</p>
  -
  -<p><b>#if you use apache2</b><br>
  -<b>SUBDIRS = apache2 adminservice #Here I build for Apache2</b><br>
  -                                                                                                                             
  -<b>#if you use apache1.3</b><br>
  -<b>#SUBDIRS = apache adminservice</b></p>
  +<p> <b>The build process</b> </p>
  +<p> <b>cd $AXISCPP_HOME</b></p>
  +<p> <b>sh autogen.sh </b> <br> <br>
  +<b>./configure --prefix=<Where you need to deploy axis c++> \</b><br>
  +<b>--with-apache2=<path to apache2> \</b> <br>
  +<b> --with-expat=/usr/local/expat1957</b> <br>
  +<br>
  +<b>make</b> <br>
  +<b>make install</b> </p>
   
  -<p>Now you need to copy header files from apache and parser that  you use</p>
  -<p>I have installed xercesc at /usr/local/xerces-c <br>
  -&nbsp &nbsp expat at /usr/local/expat1957 <br> 
  -&nbsp &nbsp apache2 at /usr/local/apache2 <br>
  -&nbsp &nbsp apache1.3 at /usr/local/apache </p>
  +<p>This will deploy Axis C++ into your folder of choice.<br>
  +Following are some of the options available with configure <br> <br>
  +<b>--with-apache2 : </b>To use apache2 as server transport library <br> <br>
  +<b>--with-apache : </b>To use apache as server transport library<br> <br>
  +<b>--with-expat : </b>To build expat parser library <br> <br>
  +<b>--with-xercesc :</b>To build xercesc parser library<br> <br>
  +<b>--enable-samples : </b>Whether you need to build samples(server and client)<br>
  +&nbsp &nbsp &nbsp &nbsp By default samples are built. If you don't want to build
  +                   the samples then you need to specifically say no <br> <br>
  +<b>--enable-testcases : </b>Whether you need to build testcases <br>
  +&nbsp &nbsp &nbsp &nbsp By default test cases are built. If you don't want to build the test cases then you need to specifically say no <br> <br>
  +<b>--enable-log : </b>Whether to enable log facility. By dafault this is enabled. If you don't need it say no to this <br> <br>
  +<b>--enable-libwww : </b>By default libwww client transport library  is built. If you don't need it say no to this. <br> </p>
  +
  +<p> You may rename and edit build.sh_sample for one step building and installing.</p>
  +<p>Once you have finished , have a look at <b>$AXISCPP_HOME/build_errors.</b> Most probably you will see many warnings.
  +Just ignore them. But if you see any errors it means that build was not successful and check whether you have followed the instructions 
  +carefully. </p>
  +<p>You can see the folder <b>$AXISCPP_DEPLOY/lib </b>to see what are created</p>
   
  -<p>I'm going to build Axis C++ for apache2 and for both xercesc and expat(But I'm going to<br>
  -use only one parser. But anyway I can give instructions to build both as you've seen earlier)<br></p>
  -<p><b>cp -rf /usr/local/xerces-c/include/xercesc/* $AXISCPP_HOME/include/xercesc/</b><br>
  -<b>cp -f /usr/local/expat1957/include/expat.h $AXISCPP_HOME/include/expat/</b><br>
  -<b>cp -f /usr/local/apache2/include/* $AXISCPP_HOME/include/apache2_0/</b></p>
  +<p> <b>libaxiscpp_mod.so is apache module which is loaded when apache loads <br>
  +libaxiscpp_mod2.so is apache2 module which is loaded when apache2 loads <br>
  +libserver_engine.so is the Axis C++ server engine which is loaded by libaxis_mod(2).so module <br>
  +libaxiscpp_client.so is Axis C++ client library <br>
  +libaxis_transport.so is the Axis C++ client transport library <br>
  +libaxis_expat.so is the expat parser library implementation for Axis C++ <br>
  +libaxis_xercesc.so is the xercesc parser library implmentation for Axis C++ </b> </p>
   
  -<p>Then I can build Axis C++ server, client,parser libraries, transport library and server/client samples by,<br>
  -<b>cd $AXISCPP_HOME</b><br>
  -<b>sh build.sh</b></p>
  +<p>Also $AXISCPP_HOME/samples/server samples are built and installed in $AXISCPP_DEPLOY/lib </p>
   
  -<p>Once you have finished, have a look at $AXISCPP_HOME/build_errors,<br> 
  -$AXISCPP_HOME/samples/server/sample_server_build_errors and <br>
  -$AXISCPP_HOME/samples/client/sample_client_build_errors to identify any warnings and errors. Most probably you will see many warnings.
  -Just ignore them. But if you see any errors it means that build was not successful and check whether you followed the instructions 
  -carefully. <br> <br>
  -<b> Note that if you see errors on build_errors file then client samples will also fail since it depends on libaxiscpp_client.so.</b></p>
  -
  -<p>You can see the folder $AXISCPP_HOME/bin to see what are created</p>
  -<p>libaxiscpp_mod.so is apache module which is loaded when apache loads <br>
  -libaxiscpp_mod2.so is apache2 module which is loaded when apache2 loads <br>
  -libserver_engine.so is the Axis C++ server engine which is loaded by libaxis_mod(2).so module<br>
  -libaxiscpp_client.so is Axis C++ client library<br>
  -libaxis_transport.so is the Axis C++ client transport library<br>
  -libaxis_expat.so is the expat parser library implementation for Axis C++<br>
  -libaxis_xercesc.so is the xercesc parser library implmentation for Axis C++</p>
  -
  -<p>Also $AXISCPP_HOME/samples/server samples are built and installed in $AXIS_HOME/web_services</p>
  -<p>$AXISCPP_HOME/samples/client samples are built and executables are in $AXISCPP_HOME/samples/client</p>
  -<p>Now you need to add to $&lt;apache install directory&gt;/conf/httpd.conf<br>
  -<b>$ vi &lt;apache install directory&gt;/conf/httpd.conf</b></p>
  +<p>$AXISCPP_HOME/samples/client samples are built and executables are in $AXISCPP_DEPLOY/bin </p>
   
  +<p>Now you need to add to <b>$&lt;apache install directory&gt/conf/httpd.conf <br>
  +$ vi &lt;apache install directory&gt/conf/httpd.conf </b> </p>
  +<br>
   <p>At the bottom of the file you have to include following lines and save it.</p>
   <p><b>LoadModule axis_module modules/libaxiscpp_mod2.so</b> (in apache1.3 replace modules with libexec and libaxiscpp_mod2.so with libaxiscpp_mod.so)<br> 
   <b>&lt;Location /axis&gt;</b><br>
   <b>SetHandler axis</b><br>
   <b>&lt;/Location&gt;</b></p>
   
  -<p>Now you need the deployment descripter to deploy server samples you built</p>
  -<p><b>cd $AXIS_HOME/conf</b><br>
  -<b>mv server.wsdd_linux server.wsdd</b><br>
  -<b>cd ..</b><br>
  -<b>mv axiscpp.conf_linux axiscpp.conf</b></p>
  -<p>In $AXIS_HOME/axiscpp.conf file you can give paths to<br>
  -your log files, configuration files libraries etc</p>
  +<p>Now you need the deployment descripter (server.wsdd) to deploy server samples you built.</p>
  +<p>By default there is a deployment descripter in $AXISCPP_DEPLOY/conf to deploy samples </p>
  + 
  +<p>In $AXISCPP_DEPLOY/etc/axiscpp.conf file you can give paths to your log files, configuration files libraries etc. </p>
  +
  +<br>
   
  -<p><b># The comment character is '#'</b><br>
  +<p><p><b># The comment character is '#'</b><br>
   <b>#Available directives are as follows</b><br>
   <b>#(Some of these directives may not be implemented yet)</b><br>
   <b>#</b><br>
  @@ -191,16 +150,20 @@
   <b>#ClientWSDDFilePath:The path to the client wsdd</b><br>
   <b>#Transport_http:The HTTP transport library</b><br>
   <b>#Transport_smtp:The SMTP transport library</b><br>
  -<b>#XMLParser:The xml parser library.</b></p>
  +<b>#XMLParser:The xml parser library</b></p>
  +
  +<p><b>LogPath:/usr/local/axiscpp_deploy/log/AxisLog</b><br>
  +<b>WSDDFilePath:/usr/local/axiscpp_deploy/etc/server.wsdd</b><br>
  +<b>ClientLogPath:/usr/local/axiscpp_deploy/log/AxisClientLog</b><br>
  +<b>XMLParser:/usr/local/axiscpp_deploy/lib/libaxis_xmlparser.so</b><br>
  +<b>Transport_http:/usr/local/axiscpp_deploy/lib/libaxis_transport.so</b></p>
   
  -<p><b>LogPath:/usr/local/Axis/logs/AxisLog</b><br>
  -<b>WSDDFilePath:/usr/local/Axis/conf/server.wsdd</b><br>
  -<b>ClientLogPath:/usr/local/Axis/logs/AxisClientLog</b><br>
  -<b>XMLParser:/usr/local/Axis/libs/libaxis_xmlparser.so</b><br>
  -<b>Transport_http:/usr/local/Axis/libs/libaxis_transport.so</b></p>
  +<br>
   
  -<p>Now we need to copy neccessary libraries to the correct places and start apache. To do that you can find scripts written in $AXIS_HOME.<br>
  -<b>cd $AXIS_HOME</b></p>
  +<p>Now we need to copy apache module(libaxiscpp_mod2.so for apache2 and libaxiscpp_mod.so for apache)
  +to the correct places and start apache.<br>
  +To do that you can find scripts written in $AXISCPP_DEPLOY/bin. <br>
  +<b>cd $AXISCPP_DEPLOY/bin</b> </p>
   
   <p>To deploy on apache2<br>
   <b>sh deploy_apache2.sh</b></p>
  @@ -208,32 +171,44 @@
   <p>To deploy on apache<br>
   <b>sh deploy_apache.sh</b></p>
   
  -<p>When you run the above script all the libraries are copied into corresponding places.<br>
  -libaxiscpp_mod2.so is copied to <your apache home>/modules folder.<br> <br>
  -libserver_engine.so and libaxis_expat.so is copied to $AXIS_HOME/libs folder(and renamed
  -libaxis_xmlparser.so).<br> Also apache is started and libaxiscpp_mod2.so is loaded into apache.<br> <br>
  -libaxiscpp_mod2.so is the apache module for Axis C++. This will in term load Axis C++ server engine (libserver_engine.so)<br> <br>
  -<b>Note that libaxis_xmlparser.so is loaded by the engine dynamically as parsing is required from the engine.</b></p>
  -
  -
  -<p><b>Note that in the line no. 12 of the script above we change the name libaxis_expat.so to libaxis_xmlparser.so.
  -If we use xerces we need to change libaxis_xercesc.so to libaxis_xmlparser.so</b>.</p>
  -
  -<p>If you have done installation successfully it will display the Axis C++ welcome page when you point to URI http://localhost/axis</p>
  -<p><b>Note: In the axis welcome page all the services in $AXIS_HOME/conf/server.wsdd are listed. This does not mean
  -that the libraries corresponding to these services are deployed yet. It merely lists whatever in the server.wsdd.</b></p>
  -
  -<p>To run interop samples</p>
  -<p><b>cd $AXISCPP_HOME/samples/client</b><br>
  -<b>sh run_interoptests.sh</b><br>
  -By default this script assumes that apache is running in the localhost at port 80<br>
  -If you want other<br>
  -<b>sh run_interoptests.sh &lt;server&gt; &lt;port&gt;</b><br>
  -eg: sh run_interoptests.sh -u localhost -p 80<br></p>
  +<p>When you run the above script, <br>
  +libaxiscpp_mod2.so is copied to &lt;your apache home&gt/modules folder. <br>
  +libaxis_expat.so is renamed to libaxis_xmlparser.so. Also apache is started and libaxiscpp_mod2.so is loaded into apache. <br>
  +libaxiscpp_mod2.so is the apache module for Axis C++. This will in term load Axis C++ server engine
  +(libserver_engine.so). <br>
  +Note that libaxis_xmlparser.so is loaded by the engine dynamically as parsing is required from the engine. </p>
  +
  +<p>Note that somewhere in the script above, it changes the name libaxis_expat.so to libaxis_xmlparser.so. <br>
  +If we use xerces we need to change libaxis_xercesc.so to libaxis_xmlparser.so. </p>
  +
  +<p>If you have done installation successfully it will display the Axis C++ welcome page when you point to URI <a href="http://localhost/axis">http://localhost/axis</a> <br> <br>
  +<b>Note: </b> In the axis welcome page all the services in $AXISCPP_DEPLOY/conf/server.wsdd are listed. This does not mean
  +that the libraries corresponding to these services are deployed yet. It merely list whatever in the server.wsdd.</p>
  +
  +<br>
  +<p>To run interop samples <br>
  +<b>cd $AXISCPP_DEPLOY/bin </b> <br>
  +<b>./base localhost 80 etc.</b> </p>
  +
  +<p>(Check whether there is a script run_interoptests.sh in that folder which can be used to run all the interop tests) </p>
  +
  +<p> If you don't get it right check with the following list <br> <br>
  +Check whether AXISCPP_HOME is set where you build axis c++ by <br>
  +<b>  echo $AXISCPP_HOME </b> <br> <br>
  +Check whether AXISCPP_DEPLOY and LD_LIBRARY_PATH is set where you start apache <br>
  + Build axis c++ and run clients by <br>
  +<b>echo $AXISCPP_DEPLOY <br>
  +echo $LD_LIBRARY_PATH </b> <br> <br>
  +</p>
  +
  +<p>Check whether you have necessary permissions to create the deploy folder which you give in configure option prefix. <br>
  +eg: configure --prefix=/usr/local/axiscpp_deploy you need permission to write in   /usr/local/  </p>
  +
  +<p>Check whether  paths in server.wsdd are pointing correctly to service or handler libraries <br> <br>
   
  -<p><b>Note for people who downloaded Axis C++ binary.<br>
  -In this case all the libraries are already generated for you in $AXISCPP_HOME/bin.You need to just build samples.</p>
  +Check whether axiscpp.conf is containing correct entries <br> <br>
   
  +Check whether Axis C++  can write to log folder($AXISCPP_DEPLOY/log) </p>
   
   <br>
   <div id="pdf" align="right">