<!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>End-to-End Calculator Sample Tutorial</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>End-to-End Calculator Sample Tutorial</h1>
</div>
<div class="h3">
<div class="h3">
<h3>Contents</h3>
</div>
<ul>
<li>
<a href="#Introduction">Introduction</a>
</li>
<li>
<a href="#GettingStarted">Getting Started</a>
</li>
<li>
<a href="#CreatingServerSideCode">Creating the server side code</a>
</li>
<li>
<a href="#BuildingServerSideCode">Building the server side code</a>
</li>
<li>
<a href="#DeployingServerSideCode">Deploying the server side code</a>
</li>
<li>
<a href="#CreatingClientSideCode">Creating the client side code</a>
</li>
<li>
<a href="#BuildingClientSideCode">Building the client side code</a>
</li>
<li>
<a href="#RunningClientSideCode">Running the client side code</a>
</li>
</ul>
<p>
<a name="Introduction"></a>
</p>
<div class="h4">
<h4>Introduction</h4>
</div>
<p>The purpose of this page is to give the user a step-by-step guide to create a simple web service client/server example using Apache Axis.<br>It is assumed that the user has downloaded the latest version of the Axis code (from page <a href="../download.html">http://ws.apache.org/axis/cpp/download.html</a>) and they also have the prerequisites as described in the Pre-requisite section (from page http://ws.apache.org/axis/cpp/install-guide.html ) and has set-up any environment variables required by Axis or its prerequisite applications.</p>
<p>
<a name="GettingStarted"></a>
</p>
<div class="h4">
<h4>Getting Started</h4>
</div>
<p>Before beginning, check that there is the following directory structure and that you have all of the libraries on the &lsquo;path&rsquo; (especially all the prerequisites). Below is a typical directory structure that you should expect to find if you have just downloaded and unzipped the package.</p>
<pre>+- Axis<br>|    +- samples<br>|    |    +- client<br>|    |    |    +- calculator<br>|    |    |    |    +- Client.cpp<br>:    :    :    :<br>|    |    +- server<br>|    |    |    +- calculator<br>|    |    |    |    +- Calculator.cpp<br>:    :<br>|    +- deploy<br>|    |    +- wsdls<br>|    |    |    +- calculator.wsdl<br>:    :<br>|    +- lib<br>|    |    +- axis<br>|    |    |    +- wsdl2ws.jar<br>|    |    |    +- axis_client.lib or libaxis_client.so<br>|    |    |    +- axis_server.lib or libaxis_server.so
:    :
</pre>
<p>Fig 1. Portion of a typical Axis directory structure containing the required sample client/server components.</p>
<br>
<br>
<p>
<strong>Note: The user must also have the correct level of Java on the build/test machine.</strong>
</p>
<p>
<a name="CreatingServerSideCode"></a>
</p>
<div class="h4">
<h4>Creating the server side code</h4>
</div>
<p>The first stage in creating the server side code is to create the server side stubs for the web service. This can be done very simply by using the Java application wsdl2ws.jar. This application will create both client and server side &lsquo;stubs&rsquo; from which the user can create their web service application. (These &lsquo;stubs&rsquo; remove the need for the user to have a deep understanding of how web services work, but the user should have some appreciation and at least a working knowledge of web service basics.) The key to web services is the WSDL file. This file contains a complete description of what methods are available in the service as well as the parameters names and types required by each method. In short, it provides a description of the interface. For this example, we will be using the calculator wsdl. In the following command line example, <em>&lt;inst_dir&gt;</em> is assumed to be the directory to which Axis was unzipped and <em>&lt;samp_dir&gt;</em> is assumed to be the directory in which the server side calculator sample is to be created. To create the server side stubs for the calculator sample, type the following at the command line:-</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr class="b">
<td>
<p>Windows/Unix</p>
</td>
</tr>
<tr class="a">
<td><tt>java &ndash;classpath <em>&lt;inst_dir&gt;</em>/lib/axis/wsdl2ws.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/axis.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/commons-discovery.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/commons-logging.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/jaxrpc.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/saaj.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/wsdl4j.jar org.apache.axis.wsdl.wsdl2ws.WSDL2Ws <em>&lt;inst_dir&gt;</em>/deploy/wsdls/calculator.wsdl -sserver -o<em>&lt;samp_dir&gt;</em>/Server</tt></td>
</tr>
</table>
<p>Fig 2. Command line to create the server side stubs from the calculator.wsdl</p>
<br>
<br>
<p>After running wsdl2ws, there should now be a new directory under the <em>&lt;samp_dir&gt;</em> called &lsquo;Server&rsquo; which should contain 9 files as follows:-</p>
<pre>AxisServiceException.cpp
AxisServiceException.hpp
Calculator.cpp
Calculator.hpp
CalculatorService.cpp
CalculatorWrapper.cpp
CalculatorWrapper.hpp
deploy.wsdd
undeploy.wsdd
</pre>
<p>Fig 3. Files produced by running the wsdl2ws application with the calculator wsdl file.</p>
<br>
<br>
<p>
<strong>Note: wsdl2ws will only generate files if they do not already exist. If the wsdl changes, the user must remember to delete the &lsquo;old&rsquo; stubs before using wsdl2ws to generate the updated ones.</strong>
</p>
<p>
<a name="BuildingServerSideCode"></a>
</p>
<div class="h4">
<h4>Building the server side code</h4>
</div>
<p>Before building the server side you might want to familiarise yourself with the content of the generated files. In particular, the Calculator.cpp file which will contain the server side of the web service methods. If we concentrate on the &lsquo;add&rsquo; method, the raw code produced by the stub is as follows:-</p>
<pre>xsd__int Calculator::add(xsd__int Value0,xsd__int Value1)  
{
}
</pre>
<p>Fig 4. Raw server side Calculator::add method code produced by the wsdl2ws application.</p>
<br>
<br>
<p>At present, the code will not compile because there is no &lsquo;return&rsquo; value. Also, there is no method code content. Before the code has any use, the programmer will have to add the necessary program logic that the method is supposed to provide. In this case, it is to add the two numbers in the parameter list and return the result.<br>You can either add the content or use the already prepared Calculator.cpp file supplied in the <em>&lt;inst_dir&gt;</em>/samples/server/calculator directory.</p>
<pre>xsd__int Calculator::add( xsd__int Value0, xsd__int Value1)
{
    return Value0 + Value1;
}
</pre>
<p>Fig 5. Server side Calculator::add method from the samples/server/calculator directory.</p>
<br>
<br>
<p>Once the logic within the Calculator.cpp file has been completed, the server side library can be built using the appropriate c/c++ compiler. Below are the compiler commands for each platform:-</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr class="b">
<td>
<p>Windows</p>
</td><td>
<p>Unix</p>
</td>
</tr>
<tr class="a">
<td><tt>cl *.cpp /GX /MD /D "WIN32" /I<em>&lt;inst_dir&gt;</em>/include /link<em>&lt;inst_dir&gt;</em>/lib/axis/axis_server.lib /DLL /OUT:"Calculator.dll"</tt></td><td><tt>gcc *.cpp -I <em>&lt;inst_dir&gt;</em>/include -L<em>&lt;inst_dir&gt;</em>/lib/axis/axis_server.so -o Calculator.so</tt></td>
</tr>
</table>
<p>Fig 6. Command line to create the server side calculator library</p>
<br>
<br>
<p>After compilation, the appropriate library file should have been created.</p>
<p>
<a name="DeployingServerSideCode"></a>
</p>
<div class="h4">
<h4>Deploying the server side code</h4>
</div>
<p>The SimpleAxisServer application uses a wsdd file to identify the connection between a web service name and the server library. The axiscpp.conf file contains a tag to identify the location of the wsdd file to be used by the server. The axiscpp.conf file can be found in the directory identified by the AXISCPP_DEPLOY environment variable. Below is the line containing the tag that identifies where the server wsdd file is located.<br>
<br>
<tt>WSDDFilePath: <em>&lt;samp_dir&gt;</em>/Server/deploy.wsdd</tt>
</p>
<p>Fig 7. Server WSDD tag in the axiscpp.conf used by SimpleAxisServer to locate services to be deployed.</p>
<br>
<strong>Note: If more than one service is to be deployed then the user will have to concatenate the deploy.wsdd files generated by the wsdl2ws tool.</strong>
<br>
<br>
<p>The contents of the automatically generated deploy.wsdd file should be as follows:-</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;deployment xmlns=http://xml.apache.org/axis/wsdd/
            xmlns:CPP=http://xml.apache.org/axis/wsdd/providers/CPP&gt;
    &lt;service name="Calculator"
             provider="CPP:RPC"
             description="Axis C++ web service"&gt;
        &lt;parameter name="className"
                  value="/user/local/apache/axis/Calculator.dll"/&gt;
        &lt;parameter name="allowedMethods"
                  value="add addRequest sub subRequest mul mulRequest div divRequest "/&gt;
    &lt;/service&gt;
&lt;/deployment&gt;
</pre>
<p>Fig 8. Contents of the deploy.wsdd file created by the wsdl2ws tool.</p>
<br>
<br>
<p>Before deployment, the wsdd file needs one alteration for the location of the library. Currently it is set to &ldquo;/user/local/apache/axis/&hellip;&rdquo;, this needs to be edited to <em>&lt;samp_dir&gt;</em>\Server\Calculator.dll or <em>&lt;samp_dir&gt;</em>/Server/Calculator.so, depending on the operating system.<br>
<br>After making this alteration, the server side is now ready to run. More information on how to run the SimpleAxisServer can be found at <a href="../install-guide.html#Simple_Axis_Server_Installation_and_Configuration">http://ws.apache.org/axis/cpp/install-guide.html#Simple_Axis_Server_Installation_and_Configuration</a>.</p>
<p>
<a name="CreatingClientSideCode"></a>
</p>
<div class="h4">
<h4>Creating the client side code</h4>
</div>
<p>The first stage in creating the client side code is to create the client side stubs for the web service. This can be done very simply by using the Java application wsdl2ws.jar. This application will create both client and server side &lsquo;stubs&rsquo; from which the user can create their web service application. (These &lsquo;stubs&rsquo; remove the need for the user to have a deep understanding of how web services work, but the user should have some appreciation and at least a working knowledge of web service basics.) The key to web services is the WSDL file. This file contains a complete description of what methods are available in the service as well as the parameters names and types required by each method. In short, it provides a description of the interface. For this example, we will be using the calculator wsdl. In the following command line example, <em>&lt;inst_dir&gt;</em> is assumed to be the directory to which Axis was unzipped and <em>&lt;samp_dir&gt;</em> is assumed to be the directory in which the client side calculator sample is to be created. To create the client side stubs for the calculator sample, type the following at the command line:-</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr class="b">
<td>
<p>Windows/Unix</p>
</td>
</tr>
<tr class="a">
<td><tt>java &ndash;classpath <em>&lt;inst_dir&gt;</em>/lib/axis/wsdl2ws.jar; <em>&lt;inst_dir&gt;</em>/lib/axisjava/axis.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/commons-discovery.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/commons-logging.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/jaxrpc.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/saaj.jar;<em>&lt;inst_dir&gt;</em>/lib/axisjava/wsdl4j.jar org.apache.axis.wsdl.wsdl2ws.WSDL2Ws <em>&lt;inst_dir&gt;</em>/deploy/wsdls/calculator.wsdl &ndash;sclient -o<em>&lt;samp_dir&gt;</em>/Client</tt></td>
</tr>
</table>
<p>Fig 9. Command line to create the client side stubs from the calculator.wsdl</p>
<br>
<br>
<p>After running wsdl2ws, there should now be a new directory under the <em>&lt;samp_dir&gt;</em> called &lsquo;Client&rsquo; which should contain 2 files as follows:-</p>
<pre>Calculator.cpp
Calculator.hpp
</pre>
<p>Fig 10. Files produced by running the wsdl2ws application with the calculator wsdl file.</p>
<br>
<br>
<p>
<a name="BuildingClientSideCode"></a>
</p>
<div class="h4">
<h4>Building the client side code</h4>
</div>
<p>Before building the client side you might want to familiarise yourself with the content of the generated files. In particular, the Calculator.cpp file which will contain the client side of the web service methods.<br>
<br>At present, there is no &lsquo;client&rsquo; code, just the stub code. Before the stub code can be compiled, the programmer will have to provide a client program that will use one or more of the methods provided by the web service. In the following example, a client has been written that requires the function provided by the &lsquo;add&rsquo; method in the calculator web service.<br>
<br>The client application writter can either provide their own client cpp file or use the already prepared Client.cpp file supplied in the <em>&lt;inst_dir&gt;</em>/samples/client/calculator directory, an extract from which follows:-</p>
<pre>try
{
    Calculator  ws( &ldquo;http://localhost:9080/axis/Calculator&rdquo;);
    xsd__int    iValue1 = 25;
    xsd__int    iValue2 = 25;
    xsd__int    iResult = ws.add( iValue1, iValue2);
    xsd__int    iExpected = iValue1 + iValue2;

    cout &lt;&lt; &ldquo;Web Service:  &rdquo; &lt;&lt; iValue1 &lt;&lt; &ldquo; + &ldquo; &lt;&lt; iValue2 &lt;&lt; &ldquo; = &ldquo; &lt;&lt; iResult &lt;&lt; endl;
    cout &lt;&lt; &ldquo;Local Machine:&rdquo; &lt;&lt; iValue1 &lt;&lt; &ldquo; + &ldquo; &lt;&lt; iValue2 &lt;&lt; &ldquo; = &ldquo; &lt;&lt; iExpected &lt;&lt; endl;
}
catch( AxisException &amp; e)
{
    cout &lt;&lt; "Axis Exception : " &lt;&lt; e.what() &lt;&lt; endl;
}
catch( exception &amp; e)
{
    cout &lt;&lt; "Exception : " &lt;&lt; e.what() &lt;&lt; endl;
}
catch( ...)
{
    cout &lt;&lt; "Unknown exception " &lt;&lt; endl;
}
</pre>
<p>Fig 11. Extract from the client side application that uses the &lsquo;add&rsquo; method from the samples/server/calculator web service.</p>
<br>
<br>
<p>Once the logic within the Client.cpp file has been completed, the client side executable can be built using the appropriate c/c++ compiler. Below are the compiler commands for each platform:-</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr class="b">
<td>
<p>Windows</p>
</td><td>
<p>Unix</p>
</td>
</tr>
<tr class="a">
<td><tt>cl *.cpp /GX /MD /D "WIN32" /I<em>&lt;inst_dir&gt;</em>/include /link<em>&lt;inst_dir&gt;</em>/lib/axis/axis_client.lib /OUT:"Calculator.exe"</tt></td><td><tt>gcc *.cpp -I <em>&lt;inst_dir&gt;</em>/include -L<em>&lt;inst_dir&gt;</em>/lib/axis/libaxis_client.so -o Calculator</tt></td>
</tr>
</table>
<p>Fig 12. Command line to create the client side calculator executable</p>
<br>
<br>
<p>After compilation, the appropriate executable file should have been created.</p>
<p>
<a name="BuildingClientSideCode"></a>
</p>
<div class="h4">
<h4>Running the client side code</h4>
</div>
<p>With the SimpleAxisServer application already running and with the correct wsdd file deployed, the Calculator client application can now be run from the command line as follows:-</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr class="b">
<td>
<p>Windows</p>
</td><td>
<p>Unix</p>
</td>
</tr>
<tr class="a">
<td><tt>Calculator add 25 25 http://localhost:9080/axis/Calculator</tt></td><td><tt>./Calculator add 25 25 http://localhost:9080/axis/Calculator</tt></td>
</tr>
</table>
<p>Fig 13. Command line to run the client side calculator executable.</p>
<br>
<br>
<p>More information on how to run the Client application can be found at <a href="../install-guide.html#Installing_Client">http://ws.apache.org/axis/cpp/install-guide.html#Installing_Client</a>.</p>
<div id="pdf" align="right">
<a href="End-2-End-Sample.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>
