blob: 392e965aa1ba23ec21103b6db66098033dcf3def [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--*** This is a generated file. Do not edit. ***-->
<link rel="stylesheet" href="../skin/tigris.css" type="text/css">
<link rel="stylesheet" href="../skin/mysite.css" type="text/css">
<link rel="stylesheet" href="../skin/site.css" type="text/css">
<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
<title>Axis C++ Linux Installation Guide</title>
</head>
<body bgcolor="white" class="composite">
<!--================= start Banner ==================-->
<div id="banner">
<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
<tbody>
<tr>
<!--================= start Group Logo ==================-->
<td align="left">
<div class="groupLogo">
<a href="http://ws.apache.org/"><img border="0" class="logoImage" alt="The Apache WebServices Project" src="../images/project-logo.jpg"></a>
</div>
</td>
<!--================= end Group Logo ==================-->
<!--================= start Project Logo ==================--><td align="right">
<div class="projectLogo">
<a href="http://ws.apache.org/axis/"><img border="0" class="logoImage" alt="The Apache Axis Project" src="../images/axis.jpg"></a>
</div>
</td>
<!--================= end Project Logo ==================-->
<!--================= start Search ==================--><td valign="top" rowspan="2" align="right" class="search">
<form target="_blank" action="http://www.google.com/search" method="get">
<table summary="search" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#a5b6c6" colspan="3"><img height="10" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
</tr>
<tr>
<td colspan="3"><img height="8" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
</tr>
<tr>
<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="ws.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit">
<br>
Search WS</td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
</tr>
<tr>
<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
</tr>
<tr>
<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
</tr>
</table>
</form>
</td>
<!--================= end Search ==================-->
</tr>
</tbody>
</table>
</div>
<!--================= end Banner ==================-->
<!--================= start Main ==================-->
<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
<tbody>
<!--================= start Status ==================-->
<tr class="status">
<td>
<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://ws.apache.org/">WS</a><a href=""></a>
<!--================= end BreadCrumb ==================--></td><td id="tabs">
<!--================= start Tabs ==================-->
<div class="tab">
<span class="selectedTab"><a class="base-selected" href="../index.html">WebServices-Axis</a></span>
</div>
<!--================= end Tabs ==================-->
</td>
</tr>
</tbody>
</table>
<!--================= end Status ==================-->
<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
<tbody>
<tr valign="top">
<!--================= start Menu ==================-->
<td id="leftcol">
<div id="navcolumn">
<div class="menuBar">
<div class="menu">
<span class="menuLabel">Axis</span>
<div class="menuItem">
<a href="http://ws.apache.org/axis/index.html">Introduction</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/news.html">News</a>
</div>
<div class="menuItem">
<a href="http://wiki.apache.org/ws/FrontPage/Axis">FAQ/Wiki</a>
</div>
<div class="menu">
<span class="menuLabel">Get Involved</span>
<div class="menuItem">
<a href="http://ws.apache.org/axis/overview.html">Overview</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/cvs.html">CVS Repository</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/mail.html">Mailing Lists</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/ref.html">Reference Library</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/bugs.html">Bugs</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/howtobuild.html">HowToBuildSite</a>
</div>
</div>
<div class="menu">
<span class="menuLabel">Axis (Java)</span>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/index.html">Documentation</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/install.html">Installation</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/user-guide.html">User's Guide</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/developers-guide.html">Developer's Guide</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/integration-guide.html">Integration Guide</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/architecture-guide.html">Architecture Guide</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/reference.html">Reference Guide</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/reading.html">Reading Guide</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/java/requirements.html">Requirements</a>
</div>
</div>
<div class="menu">
<span class="menuLabel">Axis (C++)</span>
<div class="menuItem">
<a href="../cpp/index.html">Latest Axis C++ Release!</a>
</div>
<div class="menuItem">
<a href="../cpp/documentation.html">Documentation</a>
</div>
<div class="menuItem">
<a href="../cpp/download.html">Download</a>
</div>
<div class="menuItem">
<a href="http://wiki.apache.org/ws/FrontPage/AxisCPP">Wiki Pages</a>
</div>
<div class="menuItem">
<a href="../cpp/who.html">Who we are</a>
</div>
</div>
<div class="menu">
<span class="menuLabel">Downloads</span>
<div class="menuItem">
<a href="http://ws.apache.org/axis/releases.html">Releases</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/interim.html">Interim Drops</a>
</div>
<div class="menuItem">
<a href="http://cvs.apache.org/viewcvs/ws-axis/">Source Code</a>
</div>
</div>
<div class="menu">
<span class="menuLabel">Translation</span>
<div class="menuItem">
<a href="http://ws.apache.org/axis/ja/index.html">Japanese</a>
</div>
</div>
<div class="menu">
<span class="menuLabel">Related Projects</span>
<div class="menuItem">
<a href="http://ws.apache.org/wsif/">WSIF</a>
</div>
<div class="menuItem">
<a href="http://cvs.apache.org/viewcvs/*checkout*/ws-wsil/java/README.htm">WSIL</a>
</div>
<div class="menuItem">
<a href="http://www-124.ibm.com/developerworks/projects/wsdl4j/">WSDL4J</a>
</div>
<div class="menuItem">
<a href="http://www.uddi4j.org/">UDDI4J</a>
</div>
</div>
<div class="menu">
<span class="menuLabel">Misc</span>
<div class="menuItem">
<a href="http://ws.apache.org/axis/who.html">Who We Are</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/contact.html">Contact</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/legal.html">Legal</a>
</div>
<div class="menuItem">
<a href="http://ws.apache.org/axis/docs.html">Notes/Docs</a>
</div>
</div>
</div>
</div>
</div>
</td>
<!--================= end Menu ==================-->
<!--================= start Content ==================--><td>
<div id="bodycol">
<div class="app">
<div align="center">
<h1>Axis C++ Linux Installation Guide</h1>
</div>
<div class="h3">
<div class="h3">
<h3>Axis C++ Linux Installation Guide</h3>
</div>
<p>
<strong>Contents</strong>
</p>
<ul>
<li>
<a href="#Introducti">Introduction</a>
</li>
<li>
<a href="#What">What You Need</a>
</li>
<li>
<a href="#Install">Installing Axis C++</a>
</li>
<li style="list-style: none">
<br>
</li>
</ul>
<p>
<strong>Note:</strong>The Expat XML Parser module is not currently maintained and also contains some bugs. So it is removed from the 1.5 release.</p>
<p>
<a name="Introduction"></a>
</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>
<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>
<a href="http://archive.apache.org/dist/xml/xerces-c/Xerces-C_2_2_0/">Xerces C++ (2.2.0)</a> XML parser<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>
<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 Xerces C++ (2.2.0)</h4>
</div>
<p>See the Xerces parser's documentation for installation instructions.</p>
<br>
<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> The following steps are for Axis C++ source downloads.<br>
<br> Currently Ant build system is used to build Axis C++ source code. <a href="antbuild-guide.html">ANT Build Guide</a> explains how you can use Ant to build Axis C++.<br> &nbsp;<br>
</p>
<p>
<strong>Note:</strong> 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>
<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>
<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>Channel_HTTP - Channel 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/libaxis3_transport.so
Channel_HTTP:/usr/local/axiscpp_deploy/lib/libaxis3_transport_channel.so
</pre>
<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>
<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>
<strong>Note:</strong> please rename libaxis_xercesc.so (the default parser library) to libaxis_xmlparser.so.</p>
<strong>cp -f ${AXISCPP_DEPLOY}/lib/libaxis_xercesc.so ${AXISCPP_DEPLOY}/lib/libaxis_xmlparser.so</strong>
<br>
<br>
<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 <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 <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>
<a href="lininstall-guide.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif"><br> PDF</a>
<br>
<br>
<div id="pdf" align="right">
<a href="lininstall-guide.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" class="skin"><br>
PDF</a>
</div>
</div>
</div>
</div>
</td>
<!--================= end Content ==================-->
</tr>
</tbody>
</table>
<!--================= end Main ==================-->
<!--================= start Footer ==================-->
<div id="footer">
<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
<tbody>
<tr>
<!--================= start Copyright ==================-->
<td colspan="2">
<div align="center">
<div class="copyright">
Copyright &copy; 2000-2005&nbsp;The Apache Software Foundation. All rights reserved.
</div>
</div>
</td>
<!--================= end Copyright ==================-->
</tr>
<tr>
<td align="left">
<!--================= start Host ==================-->
<!--================= end Host ==================--></td><td align="right">
<!--================= start Credits ==================-->
<div align="right">
<div class="credit"></div>
</div>
<!--================= end Credits ==================-->
</td>
</tr>
</tbody>
</table>
</div>
<!--================= end Footer ==================-->
</body>
</html>