<!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">
<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++ Windows Installation Guide</title>
</head>
<body bgcolor="white" class="composite">
<div id="banner">
<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
<tbody>
<tr>
<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><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><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>
</tr>
</tbody>
</table>
</div>
<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
<tbody>
<tr class="status">
<td><a href="http://www.apache.org/">Apache</a> | <a href="http://ws.apache.org/">WS</a><a href=""></a></td><td id="tabs">
<div class="tab">
<span class="selectedTab"><a class="base-selected" href="../index.html">WebServices-Axis</a></span>
</div>
</td>
</tr>
</tbody>
</table>
<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
<tbody>
<tr valign="top">
<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">Home</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><td>
<div id="bodycol">
<div class="app">
<div align="center">
<h1>Axis C++ Windows Installation Guide</h1>
</div>
<div class="h3">
<div class="h3">
<h3>Axis C++ Windows Installation Guide</h3>
</div>
<p>This document contains how to use the binary distribution of Axis C++. These binaries have been tested on following Microsoft platforms,<br>Windows 2000 Professional<br> Windows XP 2002 Professional<br>
</p>
<div class="h3">
<h3>Contents</h3>
</div>
<a href="#dist">What binary distribution contains</a>
<br>
<a href="#apache">Installation with Apache 1.3.x/2.x web server</a>
<br>
<a href="#simpleaxis">Installation with Simple Axis Server</a>
<br>
<a href="#samples">Running Provided Samples</a>
<br>
<a href="#playsamples">Using Visual C++ to play with provided samples.</a>
<br>
<a href="#writews">Writing your web services and client applications using Axis C++.</a>
<br>
<a href="#parser2">Installing the Xerces Parser</a>
<br>
<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="dist"></a>
</p>
<div class="h3">
<h3>What binary distribution contains</h3>
</div>
<p>1. The binary distribution contains the following folders<br> -&gt; bin<br>-&gt; deploy<br>-&gt; docs<br>-&gt; include<br>-&gt; lib<br>-&gt; samples<br>
<br>2.The folder &ldquo;bin&rdquo; contains sample clients and other dlls which are needed to run the Axis c++ server<br>
<br> 3.Inside the "deploy" folder following sub folders exist<br> -&gt; conf (This includes the server.wsdd, which is the deployment descriptor used for deploying services.)<br>-&gt; handlers (This includes sample handler dlls)<br>-&gt; libs (Contains dlls which are needed by axis.)<br>-&gt; logs (Directory for logs)<br>-&gt; webservices (Contains sample web services that can be deployed with Axis C++)<br>-&gt; wsdls (Contains sample wsdls)<br>
<br>4. The "include" folder contains all the include files which are necessary for building Axis c++ clients.<br>
<br> 5. "lib" folder contains jars needed to use the wsdl2ws tool.<br>
<br> 6. "samples" folder contains sources of all the server and client samples including interop tests.</p>
<p>
<a name="#parser2"></a>
</p>
<div class="h3">
<h3>Installing the Xerces XML parser</h3>
</div>
<br>
<p>Download the Xerces-C 2.2.0 ( 32 bit binary release) from: <a href="http://xml.apache.org/xerces-c/download.cgi">http://xml.apache.org/xerces-c/download.cgi</a>
<br>
<br> Extract the Xerces-C 2.2.0 binary version. We will refer to this folder as [Xerces_Folder].</p>
<p>
<a name="#apache"></a>
</p>
<div class="h3">
<h3>Installation with Apache 1.3.X/2.X web server</h3>
</div>
<p>Steps:<br>
<br> 1. Install apache web server and locate the installation folder(For the default installation (apache 1.3.X) the path is "C:\Program Files\Apache Group\Apache" and for apache 2.X the path is "C:\Program Files\Apache Group\Apache2" ). Lets say this folder is [Apache_Folder].<br>
<br> 2. Unzip the binary distribution to a folder of your choice. Say this folder is Axis_Extract.<br>
<br> 3. Inside the extracted folder Axis_Extract there is a sub folder called deploy. Copy the whole deploy folder to [Apache_Folder].<br>
<br> 4. Rename copied "deploy" folder to "Axis". Lets say this folder is [Axis_Folder].<br>
<br> 5. Set environment variable AXISCPP_DEPLOY to point to above folder.<br>
<br> 6. Add [Axis_Folder]/lib to the PATH environment variable.<br>
<br> 7. Add the following lines to the bottom of Apache configuration file httpd.conf located in [Apache_Folder]/conf<br>
<br>LoadModule axis_module modules/[Axis_Module]<br>&lt;Location /axis&gt;<br>SetHandler axis<br>&lt;/Location&gt;<br>
<br> [Axis_Module] is either mod_axis.dll for apache 1.3.X or mod_axis2.dll for apache 2.X.<br>
<br> 8. Copy [Axis_Module] from Axis_Extract/bin folder to [Apache_Folder]/modules folder.<br>
<br> 9. Copy AxisServer.dll,HTTPTransport.dll and HTTPChannel.dll from Axis_Extract/bin folder to [Axis_Folder]/lib<br>
<br> 10.Rename AxisXMLParser_Xerces.dll (which is located at Axis_Extract/bin ) to AxisXMLParser.dll and copy it to [Axis_Folder]/lib</p>
<br>
<p></p>
<ul>
<li>Copy xerces-c_2_2_0.dll from [Xerces_Folder]/bin/ to [Axis_Folder]/lib/</li>
<li style="list-style: none">
<br>
<br>
</li>
</ul>
<p>
<strong>Note:</strong> This could also be done by editing the axiscpp.conf.<br> 11. Open the [Axis_Folder]/axiscpp.conf_win for editing. The contents of the file will look as follows.<br>
<br> LogPath:XXXX<br>WSDDFilePath:YYYY<br>XMLParser:ZZZZ<br>Transport_http:AAAA<br>Channel_HTTP:BBBB<br>
<br> XXXX is the path to a file named AxisLog (The log file)and YYYY is the path to the server.wsdd file. Give the appropriate values for XXXX and YYYY as follows.ZZZZ is the path to the XMLParser and AAAA is the path to the Transport used and BBBB is the path to the Channel used.<br>
<br> i.e.<br>
<br> LogPath: [Apache_Folder]\Axis\logs\AxisLog<br>WSDDFilePath: [Apache_Folder]\Axis\conf\server.wsdd<br>XMLParser:[Apache_Folder]\Axis\lib\AxisXMLParser.dll<br>Transport_http:[Apache_Folder]\Axis\lib\HTTPTransport.dll<br>Channel_HTTP:[Apache_Folder]\Axis\lib\HTTPChannel.dll<br>
<br> server.wsdd is located at [Apache_Folder]\Axis\conf\ for Apache 1.3 and Apache 2. (There will be three wsdd files in the [Apache_Folder]\Axis\conf\ rename the relevant wsdd file of your platform to server.wsdd).<br>
<br> Also in order to run the provided samples do the following.<br>
<br>Open server.wsdd for editing. For each service element, locate the element "parameter name", which has the value "classname".<br>Give the absolute path of the indicated webservice.dll in the "value" attribute<br>
<br>Rename axiscpp.conf_win which is in [Axis_Folder] to axiscpp.conf<br>
<br> 12. Restart the apache web server. If you have done correctly apache server will start without giving any error.</p>
<br>
<p>
<strong>apache 1.3.X :</strong>
<br>
<br>It is recommended to start apache 1.3.X as "apache -k start" on the command line<br>
<br> 
<strong>apache 2.X :</strong>
<br>
<br>While testing the apache 2 module a problem was noted with the apache 2 web server, in that the webserver takes about 98% of CPU time and the server does not even serve the startup page.<br>
<br> The workaround for this is to start the apache web server as "apache -X" to make it run single threaded.<br>
<br> While this is sufficient to test the apache 2 module this problem needs to be investigated further.<br>
<br>(However on a different machine, when I simply run the apache2 executable (version 2.0.49) without any arguments, as, "apache" on windows 2000 professional, service pack 5, with/without Axis C++ it seems to be working fine.<br>
<br> But in this machine the apache could not be started as "apache -k start" (i.e. as a service). It simply exists and does not start. The 98% CPU usage scenario cannot be reproduced in this machine.<br>
<br>It could happen with some other apache 2 versions or in different service packs. )<br>
<br> 13. Open an internet browser and check <a href="http://localhost/axis">http://localhost/axis</a> If the module has loaded properly then you will get the axis welcome page with a listing of deployed web services.<br>
<br>
</p>
<p>
<a name="#simpleaxis"></a>
</p>
<div class="h3">
<h3>Installation with Simple Axis Server</h3>
</div>
<p>STEPS:</p>
<p>1. Create a folder of your choice. We will call this folder as Simple_Axis_Server_Folder.<br>
<br>2. Unzip the binary distribution to a folder of your choice. Say this folder is Axis_Extract.<br>
<br>3. Inside the extracted folder Axis_Extract there is a sub folder called deploy. Copy the whole deploy folder to Simple_Axis_Server_Folder.<br>
<br>4. Rename copied "deploy" folder to "Axis". Lets say this folder is [Axis_Folder].<br>
<br>5. Set environment variable AXISCPP_DEPLOY to point to above [Axis_Folder].<br>
<br>6. Add [Axis_Folder]/lib to the PATH environment variable.<br>
<br>7. Copy the SimpleAxisServer.exe from Axis_Extract/bin to the Simple_Axis_Server_Folder.<br>
<br>8. Copy AxisServer.dll,HTTPTransport.dll and HTTPChannel.dll from Axis_Extract/bin folder to [Axis_Folder]/lib<br>
<br> 9.Rename AxisXMLParser_Xerces.dll (which is located at Axis_Extract/bin) to AxisXMLParser.dll and copy it to [Axis_Folder]/lib<br>
<br>10.Copy xerces-c_2_2_0.dll from [Xerces_Folder]/bin and paste it in [Axis_Folder]/lib.<br>
<br>
</p>
<p>
<strong>Note:</strong> This could also be done by editing the axiscpp.conf.<br> 10. Open the [Axis_Folder]/axiscpp.conf_win for editing. The contents of the file will look as follows.<br>
<br> LogPath:XXXX<br>WSDDFilePath:YYYY<br>XMLParser:ZZZZ<br>Transport_http:AAAA<br>Channel_HTTP:BBBB<br>
<br> XXXX is the path to a file named AxisLog (The log file)and YYYY is the path to the server.wsdd file. Give the appropriate values for XXXX and YYYY as follows.ZZZZ is the path to the XMLParser and AAAA is the path to the used Transport and BBBB is the path to the Channel used.<br>
<br> i.e.<br>
<br> LogPath: [Apache_Folder]\Axis\logs\AxisLog<br>WSDDFilePath: [Apache_Folder]\Axis\conf\server.wsdd<br>XMLParser:[Axis_Folder]\lib\AxisXMLParser.dll<br>Transport_http:[Apache_Folder]\Axis\lib\HTTPTransport.dll<br>Channel_HTTP:[Apache_Folder]\Axis\lib\HTTPChannel.dll<br>
<br> Rename axiscpp.conf_win to axiscpp.conf.<br>
<br> 11. Start the SimpleAxisServer by providing the port to which it operates.(eg: c:\SimpleAxisServer&gt;SimpleAxisServer 80)<br>
<br>
<strong>Note:</strong>If SimpleAxisServer does not start then paste AxisClient.dll to the place where SimpleAxisServer.exe is.<br>
<br> Also in order to run the provided samples do the following.<br>
<br>Open server.wsdd for editing. server.wsdd is located at [Axis_Folder]\conf\ rename the wsdd file of your platform to server.wsdd. For each service element, locate the element "parameter name", which has the value "classname".<br>Give the absolute path of the indicated webservice.dll in the "value" attribute<br>
<br> 12. Restart the SimpleAxisServer.If you have done correctly then SimpleAxisServer will start without giving any error.<br>
</p>
<p>
<a name="#samples"></a>
</p>
<div class="h3">
<h3>Running Provided Samples</h3>
</div>
<p>If Axis installation is a complete success, then the following sample web services and handlers have been installed successfully. Please click on the following link to see the deployed web services. <a href="http://localhost/axis">http://localhost/axis</a>
<br>
<br> You will find the built console applications at [Axis_Extract]/bin directory. Following are the built .exe files.<br>
<br>01.array.exe<br>02.base.exe<br>03.bench.exe<br>04.calculator.exe<br>05.element.exe<br>06.enumeration.exe<br>07.enumeration.exe<br>08.ref.exe<br>09.rpcfault.exe<br>10.transportProperties.exe<br>
<br>In order to run these samples you should have AxisClient.dll in the PATH environment variable or in the same directory where the client .exe is located.<br>
<br> You can run the provided client programs to confirm whether the Axis cpp server and clients are working fine.<br>
<br>To run these sample client applications you need to have the path to xerces-c_2_2_0.dll in the "PATH" environment variable or xerces-c_2_2_0.dll should be placed where the apache.exe is.(xerces-c_2_2_0.dll can be found in [Xerces_Folder]\bin)<br>
<br> 
<strong>Note: These sample clients are compiled with the assumption that server is running at localhost port 80.</strong>
<br>
<br>
</p>
<p>
<a name="#playsamples"></a>
</p>
<div class="h3">
<h3>Using Visual C++ to play with provided samples.</h3>
</div>
<p>In your Axis_Extract/samples folder you have the samples.<br>
<br> If you are using Visual C++ you can open the workspace file for client applications which are in Axis_Extract\c\samples\client\interoptests\interoptests.dsw<br>
<br> Deployable webservices are in Axis_Extract\c\samples\server\interoptests\interoptests.dsw and you can play with them.<br>
<br>There are seven projects in the workspace.<br>
<br>
</p>
<p>
<a name="#writews"></a>
</p>
<div class="h3">
<h3>Writing your web services and client applications using Axis C++.</h3>
</div>
<p>For writing your own web services and client applications see the <a href="winuser-guide.html"><strong>Windows User Guide</strong></a>
</p>
<div id="pdf" align="right">
<a href="wininstall-guide.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" class="skin"><br>
          PDF</a>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div id="footer">
<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
<tbody>
<tr>
<td colspan="2">
<div align="center">
<div class="copyright">
              Copyright &copy; 2000-2005&nbsp;The Apache Software Foundation. All rights reserved.
            </div>
</div>
</td>
</tr>
<tr>
<td align="left"></td><td align="right">
<div align="right">
<div class="credit"></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
