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/06/01 09:11:40 UTC

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

roshan      2004/06/01 00:11:40

  Added:       c/docs/linux/cpp linuser-guide.html lininstall-guide.html
  Log:
  Added the latest user guide & installation guide.Changed by Rangika & Sevwandi
  
  Revision  Changes    Path
  1.1                  ws-axis/c/docs/linux/cpp/linuser-guide.html
  
  Index: linuser-guide.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=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++ User 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="../index.html">Introduction</a>
  </div>
   
  <div class="menuItem">
  <a href="../news.html">News</a>
  </div>
  
   
  <div class="menuItem">
  <a href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages">FAQ/Wiki</a>
  </div>
   
  <div class="menu">
  <span class="menuLabel">Get Involved</span>
    
  <div class="menuItem">
  <a href="../overview.html">Overview</a>
  </div>
    
  <div class="menuItem">
  <a href="../cvs.html">CVS Repository</a>
  </div>
    
  <div class="menuItem">
  <a href="../mail.html">Mailing Lists</a>
  </div>
    
  <div class="menuItem">
  <a href="../ref.html">Reference Library</a>
  </div>
    
  <div class="menuItem">
  <a href="../bugs.html">Bugs</a>
  </div>
   
  </div>
   
  <div class="menu">
  <span class="menuLabel">Axis (Java)</span>
    
  <div class="menuItem">
  <a href="../java/index.html">Documentation</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/install.html">Installation</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/user-guide.html">User's Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/developers-guide.html">Developer's Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/integration-guide.html">Integration Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/architecture-guide.html">Architecture Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/reference.html">Reference Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/reading.html">Reading Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/requirements.html">Requirements</a>
  </div>
   
  </div>
   
  <div class="menu">
  <span class="menuLabel">Axis (C++)</span>
    
  <div class="menuItem">
  <a href="../cpp/index.html">Axis C++ 1.1 released!</a>
  </div>
    
  <div class="menuItem">
  <a href="../cpp/documentation.html">Documenation</a>
  </div>
    
  <div class="menuItem">
  <a href="../cpp/download.html">Download</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="../releases.html">Releases</a>
  </div>
    
  <div class="menuItem">
  <a href="../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">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="../site.html">Whole Site</a>
  </div>
    
  <div class="menuItem">
  <a href="../who.html">Who We Are</a>
  </div>
    
  <div class="menuItem">
  <a href="../contact.html">Contact</a>
  </div>
    
  <div class="menuItem">
  <a href="../legal.html">Legal</a>
  </div>
  
    
  <div class="menuItem">
  <a href="../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++ User Guide</h1>
  </div>
  <div class="h3">
  <div class="h3">
  <h3>Contents</h3>
  </div>
  <dl>
  <dt>
  <a href="#Introducti">Introduction&nbsp;</a>
  </dt>
  <dt>
  <a href="#What">What's in this release</a>
  </dt>
  <dt>
  <a href="#Axis">Axis C++ now delivers the following key features</a>
  </dt>
  <dt>
  <a href="#Installing">Installing Axis and Using this Guide</a>
  </dt>
  <dt>
  <br>
  </dt>
  <dt>
  <a href="#Download">Download Source Distribution</a>
  </dt>
  <dd>
  <a href="#Server">ServerSide Skeleton and Wrappers generated by WSDL2ws Tool.</a>
  </dd>
  <dd>
  <a href="#Deploying">Deploying Services</a>
  </dd>
  <dd>
  <a href="#Client">Client side Stubs Generated by the wsdl2ws Tool</a>
  </dd>
  <dd>
  <a href="#sps">Building Server Side for provided Samples</a>
  </dd>
  <dd>
  <a href="#scls">Building Client Side for provided Samples</a>
  </dd>
  <dd>
  <a href="#handlers">Handlers</a>
  <br>
  </dd>
  <dd>
  <br>
  </dd>
  <dd>
  <br>
  </dd>
  <dt>
  <a href="#Download1">Download Binary</a>
  </dt>
  <dd>
  <a href="#Server1">ServerSide Skeleton and Wrappers generated by WSDL2ws Tool.</a>
  </dd>
  <dd>
  <a href="#Deploying1">Deploying Services</a>
  </dd>
  <dd>
  <a href="#Client1">Client side Stubs Generated by the wsdl2ws Tool</a>
  </dd>
  <dd>
  <a href="#bss">Building Server Side for provided Samples</a>
  <br>
  </dd>
  <dd>
  <a href="#bcs">Building Client Side for provided Samples</a>
  </dd>
  <dd>
  <br>
  </dd>
  </dl>
  <dl>
  <dt>
  <a href="#Getting">Getting a CVS checkout</a>
  </dt>
  <dt>
  <br>
  </dt>
  </dl>
  <p>
  <a name="Introducti"></a>
  </p>
  <div class="h3">
  <h3>Introduction</h3>
  </div>
  <p>Welcome to Axis C++, the opensource c++ implementation of SOAP !</p>
  <p>What is SOAP?&nbsp;</p>
  <p>SOAP is an XML-based communication protocol and encoding format for inter-application communication. Originally conceived by Microsoft and Userland software, it has evolved through several generations and the current spec, SOAP 1.2 is fast growing in popularity and usage. The W3C's XML Protocol working group is in the process of turning SOAP into a true open standard, and as of this writing has released a working draft of SOAP 1.2, which cleans up some of the more confusing areas of the 1.1 spec. SOAP is widely viewed as the backbone to a new generation of cross-platform cross-language distributed computing applications, termed Web Services. What is Axis C++? Axis C++ is essentially a SOAP engine.</p>
  <p>This version is written in C++. Axis C++ SOAP engine adopts most of Axis Java architecture. But it has some major architectural innovations over Axis Java in order to achieve greater performance and efficiency.</p>
  <p>
  <a name="What"></a>
  </p>
  <div class="h3">
  <h3>What's in this release?</h3>
  </div>
  <p>- Soap engine with both client and server support</p>
  <p>- Support for both SOAP 1.1 and SOAP 1.2</p>
  <p>- WSDD based deployment with dynamic deployment tools.</p>
  <p>- Support for all basic types, Complex types and Arrays</p>
  <p>- WSDL2WS tool for building C/C++ components</p>
  <p>- Server side &ndash; Skeletons and Wrappers</p>
  <p>- Client side &ndash; Stubs</p>
  <p>- WSDL2WS tool that generates wrappers, which perform the following functions. These wrappers act as RPC &nbsp; &nbsp;<br> &nbsp;&nbsp; Providers.</p>
  <p>- Serialization</p>
  <p>- Deserialization</p>
  <p>- Method invocation</p>
  <p>- WSDLs hosted statistically in the server.</p>
  <p>- Standalone server (with HTTP support)</p>
  <p>- Web server modules for Apache 1.3 &amp;amp; Apache2 (Linux/Windows)</p>
  <p>- Basic Wrapper Class Generator tool.</p>
  <p>- Web interface to the deployed services and their WSDL s.</p>
  <p>- Sample web services and client applications.</p>
  <p>- Document style web services support<br>
  </p>
  <p>
  <a name="Axis"></a>
  </p>
  <div class="h3">
  <h3>Axis C++ now delivers the following key features</h3>
  </div>
  <p>- Speed: Axis uses SAX (event-based) parsing to acheive significantly greater speed</p>
  <p>- Flexibility</p>
  <p>- Stability , Component oriented Deployment</p>
  <p>- Transport Framework</p>
  <p>- WSDL support</p>
  <p>AxisC++ 1.1 supports the Web Service Description Language, version 1.1, which allows you to easily build stubs to access remote services, and also to automatically export machine-readable descriptions of your deployed services from Axis. We hope you enjoy using Axis c++ 1.1. Please note that this is an open-source effort - if you feel the code could use some new features or fixes, please get involved and lend a hand! The Axis developer community welcomes your participation. Let us know what you think! Please send feedback about the package to <a href="mailto:axis-user@xml.apache.org">axis-user@xml.apache.org</a>
  </p>
  <p>
  <a name="What1"></a>
  </p>
  <p></p>
  <div class="h3">
  <h3>Installing Axis and Using this Guide</h3>
  </div>
  <p>See the Axis Installation Guide for instructions on installing Axis C++</p>
  <p>Before running the examples in this guide, you'll need to make sure that your environment variables and other configurations are set correctly as described in Installation guide. That is you need</p>
  <p>- Axis C++</p>
  <p>- Apache1.3 (or Apache2.0)</p>
  <p>- expat</p>
  <p>- j2SDK1.4</p>
  <p>installed and configured.</p>
  <p>
  <a name="Download"></a>
  </p>
  <p>Let's take a look at a sample Calculator service client that will call methods of a Calculator service deployed on Axis C++.&nbsp;</p>
  <p>
  <strong></strong>
  </p>
  <p>When starting with the valid WSDL file to use Axis C++ you have to get started with the tool called WSDL2Ws which is written in Java. source for WSDL2Ws tool is in</p>
  <p>
  <strong>$AXISCPP_HOME/src/wsdl</strong>
  </p>
  <p>You need the following jar files included in the <strong>CLASSPATH</strong> .</p>
  <p>- axis.jar</p>
  <p>- commons-discovery.jar</p>
  <p>- commons-logging.jar</p>
  <p>- jaxrpc.jar</p>
  <p>- saaj.jar</p>
  <p>- wsdl4j.jar</p>
  <p>- xml-apis.jar</p>
  <p>The <strong>CLASSPATH</strong> Environment Variable should have the absolute paths of the jars (including the jar file name) given as a colon separated list</p>
  <p>Here is a sample <strong>/home/axisuser/.bash_profile</strong> file where we specified those</p>
  <p>
  <strong>AXIS_JARS_HOME="$AXISCPP_HOME/lib/axisjava"</strong>
  </p>
  <p>
  <strong>AXIS_JARS="$AXIS_JARS_HOME/axis-<br>
  </strong> <strong>ant.jar:$AXIS_JARS_HOME/axis.jar:$AXIS_JARS_HOME/commons-<br>
  </strong> <strong>discovery.jar:$AXIS_JARS_HOME/commons-<br>
  </strong> <strong>logging.jar:$AXIS_JARS_HOME/jaxrpc.jar:$AXIS_JARS_HOME/log4j-<br>
  </strong> <strong>1.2.4.jar:$AXIS_JARS_HOME/saaj.jar:$AXIS_JARS_HOME/wsdl4j.jar"</strong>
  </p>
  <p>
  <strong>JAVA_HOME="/usr/java"</strong>
  </p>
  <p>
  <strong>PATH="$PATH:$JAVA_HOME/bin:."</strong>
  </p>
  <p>
  <strong>CLASSPATH="$CLASSPATH:./:$JAVA_HOME/lib:$AXIS_JARS:"</strong>
  </p>
  <p>
  <strong>export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC AXIS_JARS_HOME</strong>
  </p>
  <p>
  <strong>AXIS_JARS JAVA_HOME CLASSPATH</strong>
  </p>
  <p>Now</p>
  <p>
  <strong>$ cd $AXISCPP_HOME/src/wsdl/</strong>
  </p>
  <p>
  <strong>$ mkdir temp</strong>
  </p>
  <p>
  <strong>$javac -d ./temp -sourcepath . ./org/apache/axis/wsdl/wsdl2ws/*.java</strong>
  </p>
  <p>
  <strong>$cd temp</strong>
  </p>
  <p>
  <strong>$jar -cvf wsdl2ws.jar org</strong>
  </p>
  <p>
  <strong>$cp -f wsdl2ws.jar $AXISCPP_HOME/lib/axis</strong>
  </p>
  <p>add this jar to the classpath as well.(In the binary distribution you don't need to create this jar. It is already in $AXISCPP_HOME/lib/axis)</p>
  <p>
  <a name="Server"></a>
  </p>
  <div class="h3">
  <h3>Server side Skeleton And Wrappers Generated by the wsdl2ws Tool</h3>
  </div>
  <p>We use the sample at</p>
  <p>
  <strong>$AXISCPP_HOME/samples/server/simple</strong>
  </p>
  <p>
  <strong>
  <br>
  </strong>
  </p>
  <p>We use this sample to demonstrate the generation of serverside skeletons and how to deploy a web service using it.</p>
  <p>Inside this folder you will find Calculator.wsdl file using which we generate skeleton and Wrappers. Here is the command line arguments to generate the skeleton.</p>
  <p>
  <strong>*important:In this sample we generate the skeltons using Calculator.wsdl and wsdl2ws tool. But in the folder you will find already generated files. If you wish to use those without generating new ones you can do so. We recommend that you deploy the sample with the already generated files in the first round and<br> later do the same with code generated from Calcuator.wsdl.<br>
  </strong>
  </p>
  <p>
  <br> 
  <strong>cd $AXISCPP_HOME/samples/server/simple</strong>
  </p>
  <p>
  <strong>% java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Calculator.wsdl -lc++ -sserver</strong>
  </p>
  <p>Note: If you give <strong>-o. /GenClassesServer</strong> then the server create a folder named GenClassServer and put the source there. Otherwise the source is put in the current folder where the tool is run.</p>
  <p>
  <a name="Deploying"></a>
  </p>
  <div class="h3">
  <h3>Deploying the Service</h3>
  </div>
  <p>The Folder called deploy in the <strong>$AXISCPP_HOME/</strong> should be copied to a folder of your choice .Rename the deploy folder as <strong>"Axis"</strong> . Give all permissions to this folder.</p>
  <p>
  <strong>$ cp &ndash;rf $AXISCPP_HOME/deploy /usr/local</strong>
  </p>
  <p>
  <strong>$ cd /usr/local</strong>
  </p>
  <p>
  <strong>$ mv deploy Axis</strong>
  </p>
  <p>
  <strong>$ chmod -R 777 Axis</strong>
  </p>
  <p>Now set the environment variable <strong>AXIS_HOME</strong> pointing to this directory.</p>
  <p>
  <strong>AXIS_HOME="/usr/local/Axis"</strong>
  </p>
  <p>Note that inside $AXIS_HOME directory there are files called axiscpp.conf_linux and axiscpp.conf_win. Rename axiscpp.conf_linux to axiscpp.conf.&nbsp; Make sure that it has read permissions. This file contains key, value pairs of paths used by the Axis Soap Engine. You can change the WSDDFILEPATH and AXISLOGPATH inside this file according to your choice.</p>
  <p>$ <strong>cd</strong> <strong>$AXISCPP_HOME/samples/server<br>$ sh build.sh<br>
  </strong>
  <br>
  <br>By typing above in&nbsp; the command line the dynamic library ( <strong>libcalculator.so</strong> for example) is created and installed<br>in<br>
  </p>
  <p>
  <strong>$AXIS_HOME/webservices where $AXIS_HOME = /usr/local/apache/Axis</strong>
  </p>
  <p>Modify the <strong>$AXIS_HOME/conf/</strong><strong>server.wsdd</strong> .&nbsp; (You have a sample server.wsdd file entry given below appropriately filled for this service).</p>
  <p>
  <strong>&lt;?xml version="1.0" encoding="UTF-8"?&gt;</strong>
  <br> 
  <strong>&lt;deployment xmlns="http://xml.apache.org/axis/wsdd/"xmlns:C="http://xml.apache.org/axis/wsdd/providers/c"&gt;</strong>
  <br> 
  <strong>&lt;service&gt;</strong>
  <br> 
  <strong>&lt;service name ="Calculator" provider ="CPP:RPC" description:"Simple calculator web service"&gt; &lt;parameter name="classname" &nbsp;value = "/usr/local/Axis/webservices/libcalculator.so" /&gt;</strong>
  </p>
  <p>
  <strong>&lt;parameter name= "allowedMethods" value="add sub mul div "/&gt; &lt;/service&gt;</strong>
  <br>
  </p>
  <p>
  <strong>&lt;/deployment&gt;</strong>
  </p>
  <p>Start the Apache server</p>
  <p>
  <strong>$ /usr/local/apache/bin/apachectl start</strong>
  </p>
  <p>Now open a browser and enter the link http://localhost/axis If the service is correctly deployed then it will be displayed in a table of deployed services which contain information such as service name, link to wsdl and a description of the service.</p>
  <p>
  <a name="Client"></a>
  </p>
  <div class="h3">
  <h3>Client side Stubs Generated by the wsdl2ws Tool</h3>
  </div>
  <p>WSDL2Ws tools will generate the stubs for the client side. You will have C++ Client class and header file.</p>
  <p>
  <strong>$ cd $AXISCPP_HOME/samples/client/simple</strong>
  </p>
  <p>
  <strong>$ cp -f $AXISCPP_HOME/samples/server/simple/Calculator.wsdl ./</strong>
  </p>
  <p>
  <strong>*important:In this sample we generate the stubs using Calculator.wsdl and wsdl2ws tool. But in the folder you will find already generated files. If you wish to use those without generating new ones you can do so. We recommend that you run the sample with the already generated files in the first round and<br> later do the same with code generated from Calcuator.wsdl.</strong>
  <br>
  </p>
  <p>
  <strong>$ java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Calculator.wsdl -lc++ -sclient</strong>
  </p>
  <p>
  <strong>
  <br>Note:</strong> again if you specify <strong>-o./GenClassesClient</strong> you will have source generated inside GenClassClient folder instead of current folder where the tool is run. Before compiling the client you have to write a class which contain a main method in which Calculator instance is created and its methods are called.</p>
  <p>Then fill the samples with the relevant business logics .</p>
  <p>Then fill the main method in a file as follows</p>
  <p>
  <strong>#include "Calculator.h"</strong>
  <br> 
  <strong>#include&lt;stdio.h&gt;</strong>
  <br> 
  <strong>int main()</strong>
  <br> 
  <strong>&nbsp;{</strong>
  <br> 
  <strong>&nbsp;&nbsp;Calculator c;</strong>
  <br> 
  <strong>&nbsp;&nbsp;int intOut;</strong>
  <br> 
  <strong>&nbsp;&nbsp;c.add(20, 40, intOut);</strong>
  <br> 
  <strong>&nbsp;&nbsp;printf("result is = %d\n", intOut);</strong>
  <br> 
  <strong>&nbsp;&nbsp;return 0;</strong>
  <br> 
  <strong>&nbsp;}</strong>
  </p>
  <p>Then build by<br> 
  <strong>cd $AXISCPP_HOME/samples/client</strong>
  <br>
  </p>
  <p>
  <strong>sh build.sh</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>
  </p>
  <p>
  <br>
  </p>
  <p>
  <a name="sps"></a>
  <br>
  </p>
  <div class="h3">
  <h3>Building Serverside of &nbsp;provided Samples</h3>
  </div>
  <p>Basically this will include all the Interoptest Samples and calculator sample.</p>
  <br>
  <p>
  <strong>cd $AXISCPP_HOME/samples/server</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>
  <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>
  <br>
  </p>
  <strong>Restart Apache</strong>
  <br>
  <p>
  <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>
  <p>
  <strong><strong>$ ./base localhost 80 &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>
  <strong></strong>
  </p>
  <br>
  <p>
  <strong><strong></strong></strong>
  </p>
  <p>
  <a name="handlers"></a>
  </p>
  <div class="h3">
  <h3>Handlers</h3>
  </div>
  <p>Handlers are pluggable components to Axis C++. We have included a set of sample handlers for your reference. You could write your own handlers by following the instructions which are given for the sample Handlers.</p>
  <p>Note: If you are using Client side Handlers you need to enter the following entry in the AXIS_HOME/axiscpp.conf configuration file.</p>
  <p>CLIENTWSDDFILEPATH:Axis\conf\client.wsdd</p>
  <p>After entering this entry your AXIS_HOME/axiscpp.conf configuration file will look like:</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;AXISLOGPATH:Axis\logs\AxisLog.txt</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;WSDDFILEPATH:Axis\conf\server.wsdd</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;CLIENTWSDDFILEPATH:Axis\conf\client.wsdd</p>
  <br>
  <p>
  <strong><strong>Testing the sample Handlers</strong></strong>
  </p>
  <p>We have included the following sample Handlers for your reference.</p>
  <p>1) echoStringHeaderHandler (A server side handler sample)</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;This sample handler will simply echo (i.e send back) the string which you send in the SOAP request.</p>
  <p>2) testHandler (A client side handler sample)</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;This sample handler will simply add a SOAP Header to the generated SOAP request.</p>
  <br>
  <p>Please note that these are very primitive sample handlers and are presented here to give you an idea about writing your own Handlers.</p>
  <br>
  <p>
  <strong><strong>echoStringHeaderHandler</strong></strong>
  </p>
  <p>
  <strong><strong>Building the Sample Handlers in RedHat linux</strong></strong>
  </p>
  <br>
  <p>
  <strong><strong>Building echoStringHeaderHandler (A server side handler sample)</strong></strong>
  </p>
  <p>The build files are available at AXISCPP_HOME/samples/server/echoStringHeaderHandler. Change your current directory to this direcotory and then you could execute the following.</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; sh autogen.sh</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; sh runconfig</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; make</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; make install</p>
  <p>The handler so file will be created at $AXIS_HOME/handlers/custom/echoStringHeaderHandler.</p>
  <p>
  <strong><strong>Configuring the Handler</strong></strong>
  </p>
  <p>Now edit the AXIS_HOME/conf/server.wsdd to include the handler for a particular service.</p>
  <br>
  <p>&lt;service name="Calculator" provider="CPP:RPC" description="Simple Calculator Axis C++ Service "&gt;</p>
  <p>&lt;requestFlow name="CalculatorHandlers"&gt;</p>
  <p>&lt;handler name="ESHHandler" type="AXIS_HOME/handlers/custom/echoStringHeaderHandler/libeshhandler.so"&gt;</p>
  <p>&lt;/handler&gt;</p>
  <p>&lt;/requestFlow&gt;</p>
  <p>&lt;responseFlow name="CalculatorHandlers"&gt;</p>
  <p>&lt;handler name="ESHHandler" type="AXIS_HOME/handlers/custom/echoStringHeaderHandler/libeshhandler.so"&gt;</p>
  <p>&lt;/handler&gt;</p>
  <p>&lt;/responseFlow&gt;</p>
  <p>&lt;parameter name="allowedMethods" value="add sub mul div "/&gt;</p>
  <p>&lt;parameter name="className" value="Axis\webservices\Calculator.dll" /&gt;</p>
  <p>&lt;/service&gt;</p>
  <br>
  <p>Note: Make sure you specify the correct path of the handler so in the server.wsdd file. Replace the AXIS_HOME with the exact relative path which AXIS_HOME points to. (eg: type="/usr/local/apache2/Axis/handlers/custom/echoStringHeaderHandler/libeshhandler.so )</p>
  <p>Now you are almost done to run your server side handler.</p>
  <p>Restart the Apache server and that is it.</p>
  <p>
  <strong><strong>Running the Handler</strong></strong>
  </p>
  <p>Since this Handler is configured to the Calculator web service in the above step, this Handler will be executed when a client send a SOAP request to the Calculator web service.</p>
  <br>
  <p>
  <strong><strong>testHandler</strong></strong>
  </p>
  <p>
  <strong><strong>Building the Sample Handlers in RedHat linux</strong></strong>
  </p>
  <br>
  <p>
  <strong><strong>Building testHandler (A client side handler sample)</strong></strong>
  </p>
  <p>The build files are available at AXISCPP_HOME/samples/client/testHandler. Change your current directory to this direcotory and then you could execute the following.</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; sh autogen.sh</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; sh runconfig</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; make</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; make install</p>
  <p>The handler so file will be created at $AXIS_HOME/handlers/client/test_handler.</p>
  <p>
  <strong><strong>Configuring the Handler</strong></strong>
  </p>
  <p>Now edit the AXIS_HOME/conf/client.wsdd to include the handler for a particular service.</p>
  <br>
  <p>&lt;service name="Calculator" provider="CPP:DOCUMENT" description="Calculator web service"&gt;</p>
  <p>&lt;requestFlow name="CalculatorHandlers"&gt;</p>
  <p>&lt;handler name="TestHandler" type="AXIS_HOME/handlers/client/test_handler/libtest_client_handler.so"&gt;</p>
  <p>&lt;/handler&gt;</p>
  <p>&lt;/requestFlow&gt;</p>
  <p>&lt;/service&gt;</p>
  <br>
  <p>Note: Make sure you specify the correct path of the handler so in the client.wsdd file. Replace the AXIS_HOME with the exact relative path which AXIS_HOME points to. (eg: type="/usr/local/apache2/Axis/handlers/client/test_handler/libtest_client_handler.so)</p>
  <p>Now you are almost done to run your client side handler.</p>
  <p>Note: If you are using Client side Handlers you need to enter the CLIENTWSDDFILEPATH entry in the AXIS_HOME/axiscpp.conf configuration file. (See above)</p>
  <p>
  <strong><strong>Running the Handler</strong></strong>
  </p>
  <p>Since this Handler is configured to the Calculator web service in the above step, this Handler will be executed when you run the calculator web service client. (It is at AXISCPP_HOME/samples/client/simple/calculator)</p>
  <br>
  <p>
  <strong><strong>Handler Notes:</strong></strong>
  </p>
  <p>1) You can see the Handler behavior through the TCP Monitor. (TCP Monitor is a Axis Java tool)</p>
  <p>2) To get an idea of Handlers look at the Handler sample source files.</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; a. echoStringHeaderHandler (AXISCPP_HOME/samples/server/echoStringHeaderHandler)</p>
  <p></p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp; b. testHandler (AXISCPP_HOME/samples/client/testHandler)</p>
  <p>
  <br>
  <br>
  </p>
  <p>
  <strong><strong><a name="Getting"></a></strong></strong>
  </p>
  <div class="h3">
  <h3>Getting a CVS checkout</h3>
  </div>
  <p>
  <strong><strong>Visit <a href="http://ws.apache.org/">http://ws.apache.org/</a> click on "axis" and then on</strong> "CVS Repository"</strong> to find details on accessing the CVS Repository. It will have instructions similar to the following."Anyone can checkout source code from our anonymous CVS server. To do so, simply use the following commands (if you are using a GUI CVS client, configure it appropriately):</p>
  <p>
  <strong><strong><strong>cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login</strong></strong></strong>
  </p>
  <p>
  <strong><strong><strong>password: anoncvs</strong></strong></strong>
  </p>
  <p>
  <strong><strong><strong>cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout -d &lt;your local folder&gt; ws-axis/c"</strong></strong></strong>
  </p>
  <br>
  <br>
  <div id="pdf" align="right">
  <a href="linuser-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-2003&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>
  
  
  
  1.1                  ws-axis/c/docs/linux/cpp/lininstall-guide.html
  
  Index: lininstall-guide.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=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="../index.html">Introduction</a>
  </div>
   
  <div class="menuItem">
  <a href="../news.html">News</a>
  </div>
  
   
  <div class="menuItem">
  <a href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages">FAQ/Wiki</a>
  </div>
   
  <div class="menu">
  <span class="menuLabel">Get Involved</span>
    
  <div class="menuItem">
  <a href="../overview.html">Overview</a>
  </div>
    
  <div class="menuItem">
  <a href="../cvs.html">CVS Repository</a>
  </div>
    
  <div class="menuItem">
  <a href="../mail.html">Mailing Lists</a>
  </div>
    
  <div class="menuItem">
  <a href="../ref.html">Reference Library</a>
  </div>
    
  <div class="menuItem">
  <a href="../bugs.html">Bugs</a>
  </div>
   
  </div>
   
  <div class="menu">
  <span class="menuLabel">Axis (Java)</span>
    
  <div class="menuItem">
  <a href="../java/index.html">Documentation</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/install.html">Installation</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/user-guide.html">User's Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/developers-guide.html">Developer's Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/integration-guide.html">Integration Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/architecture-guide.html">Architecture Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/reference.html">Reference Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../java/reading.html">Reading Guide</a>
  </div>
    
  <div class="menuItem">
  <a href="../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">Documenation</a>
  </div>
    
  <div class="menuItem">
  <a href="../cpp/download.html">Download</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="../releases.html">Releases</a>
  </div>
    
  <div class="menuItem">
  <a href="../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">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="../site.html">Whole Site</a>
  </div>
    
  <div class="menuItem">
  <a href="../who.html">Who We Are</a>
  </div>
    
  <div class="menuItem">
  <a href="../contact.html">Contact</a>
  </div>
    
  <div class="menuItem">
  <a href="../legal.html">Legal</a>
  </div>
  
    
  <div class="menuItem">
  <a href="../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>Installing and deploying web applications using xml-AxisC++</h3>
  </div>
  <div class="h3">
  <h3>Contents</h3>
  </div>
  <ul>
  <li>
  <a href="#Introducti">Introduction</a>
  </li>
  <li>
  <a href="#What">What You Need</a>
  </li>
  <li>
  <a href="#Installati">Installing On Linux</a>
  </li>
  <li>
  <a href="#Installing">Installing expat</a>
  </li>
  <li>
  <a href="#Xercesc">Installing Xerces-c</a>
  <br>
  </li>
  <li>
  <a href="#Installing1">Installing Apache</a>
  </li>
  <li>
  <a href="#Installing2">Installing AxisC++</a>
  </li>
  <li>
  <a href="#Validating">Validating The Installation</a>
  </li>
  </ul>
  <p>
  <a name="Introducti"></a>
  </p>
  <div class="h3">
  <h3>Introduction</h3>
  </div>
  <p>This document describes how to install Apache Axis C++. It assumes you already know how to write and run C++/C code and not scared away by XML. You should also have familiarity with Web servers. This version of Axis C++ is tested on Apache web server.</p>
  <p>
  <a name="What"></a>
  </p>
  <div class="h3">
  <h3>What You need</h3>
  </div>
  <p>It needs a few helper libraries, for logging, WSDL processing and introspection. You need to have following in order to run Axis C++ engine.</p>
  <ul>
  <li>Apache &nbsp; &nbsp; &nbsp;1.3 or 2</li>
  <li>expat (if use expat parser)</li>
  <li>Xerces-c (if use xerces parser)</li>
  </ul>
  <p>
  <a name="Installati"></a>
  </p>
  <div class="h3">
  <h3>Installation On Linux</h3>
  </div>
  <p>We tested with the following</p>
  <ul>
  <li>RedhatLinux9.0(2.4.20-8), Dabian(2.6.3-1-686)(unstable), Redhat Linux8.0(2.4.18-14)</li>
  <li>Apache 1.3 [apache_1.3.27.tar .gz, apache_1.3.28.tar.gz)] (Source), Apache2.0 (source)</li>
  <li>expat [expat-1.95.7.tar.gz](Source)&nbsp;</li>
  </ul>
  <strong>Note</strong>
  <ul>
  <li>autoconf &nbsp; &nbsp;2.57, automake &nbsp;1.6.3, libtool 1.4.3</li>
  </ul>
  <br>
  <p>
  <strong>Downloading the source or binary from the mirror site and setting the environment variables</strong>
  </p>
  <p>You can download the Axis C++ source or binary from one of the apache mirror sites<a href="http://ws.apache.org/axis/cpp/download.html">http://ws.apache.org/axis/cpp/download.html</a>
  </p>
  <p>Your downloaded source distribution is <strong>axis-c-src-1-1-linux.tar.gz</strong>.<br> Binary distribution is <strong>axis-c-1-1-linux.tar.gz.</strong>
  <br>After you extracting it as, <strong>/home/axisuser/projects/</strong> <strong>axis-c-src-1-1-linux</strong> or <strong>/home/axisuser/projects/</strong> <strong>axis-c-1-1-linux</strong> you can rename it as <strong>axis_c</strong>
  </p>
  <p>You have to set the environment variable $AXISCPP_HOME to the directory where you extracted the tar ball.. We further assume that the user dose the installation and has the linux user account axisuser. For example I have my &lt;AXISCPP_HOME&gt; as following.</p>
  <p>/home/axisuser/projects/axis_c</p>
  <p>
  <a name="Installing"></a>
  </p>
  <div class="h3">
  <h3>Installing expat</h3>
  </div>
  <p>You can get expat from the uri <a href="http://sourceforge.net/projects/expat/">http://sourceforge.net/projects/expat/</a>
  </p>
  <p>You have to follow the expat installation guide to install it</p>
  <p>
  <a name="Xercesc"></a>
  </p>
  <div class="h3">
  <h3>Installing Xerces-c</h3>
  </div>
  <p>You can get xercesc from the uri <a href="http://www.xml.apache.org/xerces-c/download.cgi">http://www.xml.apache.org/xerces-c/download.cgi</a>
  <br>
  <br> You have to follow the the xercesc installation giude to install it.<br>
  <br>
  </p>
  <p>
  <a name="Installing1"></a>
  </p>
  <div class="h3">
  <h3>Installing Apache</h3>
  </div>
  <p>Get the apache downloadable software. (We used the source apache_1.3.27.tar.gz). Build it with sharable module support.</p>
  <p>
  <strong>$ ./configure --enable-module=so</strong>
  </p>
  <p>Note:- Here "so" is simple letters</p>
  <p>
  <strong>$ make</strong>
  </p>
  <p>
  <strong>$ make install</strong>
  </p>
  <p>Starting the Apache server</p>
  <p>
  <strong>$ usr/local/apache/bin/apachectl start</strong>
  </p>
  <p>Stopping the Apache Server</p>
  <p>
  <strong>$ usr/local/apache/bin/apachectl stop</strong>
  </p>
  <p>
  <a name="Installing2"></a>
  </p>
  <div class="h3">
  <h3>Installing Axis C++</h3>
  </div>
  <br>
  <strong>If you downloaded the source distribution</strong>
  <br>
  <p>Create an environment variable called AXISCPP_HOME.</p>
  <p>
  <strong>$ cd /home/axisuser</strong>
  </p>
  <p>
  <strong>[axisuser@localhost axisuser]$ vi ./.bash_profile</strong>
  </p>
  <p>
  <strong>AXISCPP_HOME="/home/axisuser/projects/axis_c"</strong>
  </p>
  <p>
  <strong>export AXISCPP_HOME</strong>
  </p>
  <p>Save it and back in the terminal window.</p>
  <p>
  <strong>$ source ~/.bash_profile</strong>
  </p>
  <p>Verify the above change had been correctly effected by typing</p>
  <p>
  <strong>$ echo $AXISCPP_HOME</strong>
  </p>
  <p>Copy apache include files</p>
  <p>
  <strong>$ cp -f &lt;apacheinstdirectory&gt;/include/* $AXISCPP_HOME/include/apache1_3/</strong>
  </p>
  <p>If you are using expat parser copy the expat include files</p>
  <p>
  <strong>$ cp -f &lt;expatinstdirectory&gt;/include/expat.h $AXISCPP_HOME/include/expat/</strong>
  </p>
  <p>If you are using xercesc parser copy the xercesc include files</p>
  <p>
  <strong>$ cp -rf &lt;xercescinstdirectory&gt;/include/xercesc/* $AXISCPP_HOME/include/xercesc/</strong>
  </p>
  <p>
  <strong>$ cd $AXISCPP_HOME</strong>
  </p>
  <p>The Folder called deploy in the $AXISCPP_HOME/ should be copied to your place of choice. Rename the deploy folder as "Axis" . Give all permissions to this folder.<br>
  <br>
  <br>
  <strong>$ cp -rf $AXISCPP_HOME/deploy&nbsp; /usr/local</strong>
  <br>
  <br>
  <strong>$ cd /usr/local</strong>
  <br>
  <br>
  <strong>$ mv deploy Axis</strong>
  <br>
  <br>
  <strong>$ chmod -R 777 Axis</strong>
  <br>
  <br>
  <br>Now set the environment variable <strong>AXIS_HOME</strong> pointing to this directory.<br>
  <br>
  <strong>AXIS_HOME="/usr/local/Axis"</strong>
  <br>
  </p>
  <p>You also need to rename the following files<br>
  <strong>mv $AXIS_HOME/axiscpp.conf_linux $AXIS_HOME/axiscpp.conf</strong>
  <br>
  <strong>mv $AXIS_HOME/conf/server.wsdd_linux $AXIS_HOME/conf/server.wsdd</strong>
  <br>
  <strong>mv $AXIS_HOME/conf/client.wsdd_linux $AXIS_HOME/conf/client.wsdd</strong>
  </p>
  <p>If you are using expat parser do the following<br>
  </p>
  <p>set <strong>EXPAT_HOME</strong>="&lt;Your expat installation root folder&gt;"</p>
  <p>set <strong>LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$EXPAT_HOME/lib:$AXISCPP_HOME/bin:$AXIS_HOME"</strong> (do this in your .bash_profile)<br>
  <br>
  <br>
  <strong>cd $AXISCPP_HOME/src/soap</strong>
  <br>
  <br>
  <strong>cp -f Makefile.am_expat Makefile.am</strong>
  <br> 
  <strong>cd $AXISCPP_HOME/src/wsdd</strong>
  <br>
  <strong>cp -f Makefile.am_expat Makefile.am</strong>
  </p>
  <p>If you are using Xerces-c parser do the following</p>
  <p>set <strong>XERCESC_HOME</strong>="&lt;Your xercesc installation root folder&gt;"</p>
  <p>set <strong>LD_LIBRARY_PATH="$XERCESC_HOME/lib:$AXISCPP_HOME/bin:$AXIS_HOME"</strong> (do this in your .bash_profile)<br>
  <br>
  <strong>cd $AXISCPP_HOME/src/soap</strong>
  <br>
  <strong>cp -f Makefile.am_xercesc Makefile.am</strong>
  <br>
  <br>
  <strong>cd $AXISCPP_HOME/src/wsdd</strong>
  <br>
  <strong>cp -f Makefile.am_xercesc Makefile.am</strong>
  </p>
  <p>in $AXISCPP_HOME/configure.ac comment expat related things and uncomment xercesc related things as described in it.<br>
  <br>
  <strong>for samples</strong>
  <br>
  <br>
  </p>
  <p>in $AXISCPP_HOME/samples/client/configure.ac comment expat related things and uncomment xercesc related<br>things as described in it.<br>
  <br>
  </p>
  <p>To Build from the Axis C++ source execute these.</p>
  <p>
  <strong>$cd $AXISCPP_HOME/</strong>
  <br>
  </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</strong> Run the build.sh as follows<br>
  <br>
  <strong>sh build.sh</strong>
  <br>
  <br>
  </p>
  <p>libaxiscpp_mod.so (If you built for apache2 this is libaxiscpp_mod2.so), libaxiscpp_client.so, libserver_engine.so, libAdminService.so, adminclient, simple-axis_server should have been created in $AXISCPP_HOME/bin directory. Note:- you can give the install path inside the runconfigure script.</p>
  <p>Now there is no need to seperately build client side and server side. When execute build.sh it will lookafter everything.<br>-----------------------------------------------------------------------</p>
  <p>
  <strong>NOTE:</strong> If you use apache1.3 following two small changes have to be done in $AXISCPP_HOME/configure.ac and $AXISCPP_HOME/src/server/Makefile.am)</p>
  <p>in $AXISCPP_HOME/configure.ac</p>
  <p>uncomment</p>
  <p>
  <strong>AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/engine/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/server/Makefile src/server/apache/Makefile)</strong>
  </p>
  <p>and comment</p>
  <p>
  <strong>#AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/engine/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/server/Makefile src/server/apache2/Makefile)</strong>
  </p>
  <p>in $AXISCPP_HOME/src/server/Makefile.am</p>
  <p>change SUBDIRS = apache2 to SUBDIRS = apache<br> ------------------------------------------------------------------------------<br>
  <br>
  <br>Then to deploy it on apache<br>
  <br>
  </p>
  <p>First you need to edit &lt;apache install directory&gt;/conf/httpd.conf</p>
  <p>
  <strong>$ vi &lt;apache install directory&gt;/conf/httpd.conf</strong>
  </p>
  <p>At the bottom of the file you have to include following lines and save it.</p>
  <p>
  <strong>LoadModule axis_module libexec/libaxiscpp_mod.so (in apache2 replace libexec with modules and libaxiscpp_mod.so with libaxiscpp_mod2.so)</strong>
  </p>
  <p>
  <strong>&lt;Location /axis&gt;</strong>
  </p>
  <p>
  <strong>SetHandler axis</strong>
  </p>
  <p>
  <strong>&lt;/Location&gt;</strong>
  </p>
  <br>
  <p>
  <strong>cd /usr/local/Axis</strong>
  </p>
  <p>
  <strong>cp -f $AXIS_HOME/deploy.sh_apache ./deploy.sh</strong>
  <br>(if apache2) <strong>cp -f $AXIS_HOME/deploy.sh_apache2 ./deploy.sh</strong>
  </p>
  <p>
  <strong>sh deploy.sh</strong>
  </p>
  <br>
  <p>deploy.sh is a script which copies files to neccessary places and start apache.<br>
  </p>
  <p>-----------------------------------------------------------------</p>
  <p>
  <br>
  <strong>If you downloaded the binary distribution</strong>
  <br>
  </p>
  <p>Create an environment variable called AXISCPP_HOME.</p>
  <p>
  <strong>$ cd /home/axisuser</strong>
  </p>
  <p>
  <strong>[axisuser@localhost axisuser]$ vi ./.bash_profile</strong>
  </p>
  <p>
  <strong>AXISCPP_HOME="/home/axisuser/projects/axis_c"</strong>
  </p>
  <p>
  <strong>export AXISCPP_HOME</strong>
  </p>
  <p>Save it and back in the terminal window.</p>
  <p>
  <strong>$ source ~/.bash_profile</strong>
  </p>
  <p>Verify the above change had been correctly effected by typing</p>
  <p>
  <strong>$ echo $AXISCPP_HOME</strong>
  </p>
  <p>
  <strong>$ cd $AXISCPP_HOME</strong>
  </p>
  <p>The Folder called deploy in the $AXISCPP_HOME/ should be copied to a folder of your choice .Rename the deploy folder as "Axis" . Give all permissions to this folder.<br>
  <br>
  <br>
  <strong>$ cp -rf $AXISCPP_HOME/deploy&nbsp; /usr/local</strong>
  <br>
  <br>
  <strong>$ cd /usr/local</strong>
  <br>
  <br>
  <strong>$ mv deploy Axis</strong>
  <br>
  <br>
  <strong>$ chmod -R 777 Axis</strong>
  <br>
  <br>
  <br>Now set the environment variable <strong>AXIS_HOME</strong> pointing to this directory.<br>
  <br>
  <strong>AXIS_HOME="/usr/local/Axis"</strong>
  </p>
  <p>You also need to rename the following files<br>
  <strong>mv $AXIS_HOME/axiscpp.conf_linux $AXIS_HOME/axiscpp.conf</strong>
  <br>
  <strong>mv $AXIS_HOME/conf/server.wsdd_linux $AXIS_HOME/conf/server.wsdd</strong>
  <br>
  <strong>mv $AXIS_HOME/conf/client.wsdd_linux $AXIS_HOME/conf/client.wsdd</strong>
  </p>
  <p>
  <br>-----------------------------------------------------------------------</p>
  <p>
  <strong>NOTE:&nbsp;</strong> Binary distribution is built to work with expat parser. If you need xerces parser you need to build<br>from the source.<br>------------------------------------------------------------------------------<br>
  <br>
  <br>Then to deploy it on apache<br>
  <br>
  </p>
  <p>First you need to edit &lt;apache install directory&gt;/conf/httpd.conf</p>
  <p>
  <strong>$ vi &lt;apache install directory&gt;/conf/httpd.conf</strong>
  </p>
  <p>At the bottom of the file you have to include following lines and save it.</p>
  <p>
  <strong>LoadModule axis_module libexec/libaxiscpp_mod.so (in apache2 replace libexec with modules and libaxiscpp_mod.so with libaxiscpp_mod2.so)</strong>
  </p>
  <p>
  <strong>&lt;Location /axis&gt;</strong>
  </p>
  <p>
  <strong>SetHandler axis</strong>
  </p>
  <p>
  <strong>&lt;/Location&gt;</strong>
  </p>
  <br>
  <p>
  <strong>cd /usr/local/Axis</strong>
  </p>
  <p>
  <strong>cp -f $AXIS_HOME/deploy.sh_apache &nbsp;./deploy.sh</strong>
  <br>
  <strong>(if apache2) cp -f $AXIS_HOME/deploy.sh_apache2 ./deploy.sh</strong>
  </p>
  <p>
  <strong>sh deploy.sh</strong>
  </p>
  <br>
  <p>deploy.sh is a script which copies files to neccessary places and start apache.<br>
  <br>
  </p>
  <p></p>
  <p>
  <br>
  </p>
  <p>
  <a name="Validating"></a>
  </p>
  <div class="h3">
  <h3>Validating The Installation</h3>
  </div>
  <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>Note: In the axis welcome page all the services in $AXIS_HOME/conf/server.wsdd are listed. This does not mean<br>that the libraries corresponding to these services are deployed yet. It merely list whatever in the server.wsdd.<br>
  </p>
  <p>
  <strong>Deploying a Web Service</strong>
  </p>
  <p>You can deploy your own web service or the sample webservices with the guidance in the <a href="linuser-guide.html">userguide</a>
  </p>
  <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-2003&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>