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 ha...@apache.org on 2005/12/20 15:50:37 UTC

svn commit: r358006 - in /webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp: arch/handler.ihtml clientuser-guide.ihtml install-guide.ihtml serveruser-guide.ihtml

Author: hawkeye
Date: Tue Dec 20 06:50:31 2005
New Revision: 358006

URL: http://svn.apache.org/viewcvs?rev=358006&view=rev
Log:
added some missing files plus fixed some typos

Added:
    webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/clientuser-guide.ihtml
    webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/install-guide.ihtml
    webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/serveruser-guide.ihtml
Modified:
    webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/arch/handler.ihtml

Modified: webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/arch/handler.ihtml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/arch/handler.ihtml?rev=358006&r1=358005&r2=358006&view=diff
==============================================================================
--- webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/arch/handler.ihtml (original)
+++ webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/arch/handler.ihtml Tue Dec 20 06:50:31 2005
@@ -160,12 +160,12 @@
 
 
 
-Now you are almost ready to run your client side handler. </BR>
+<P>Now you are almost ready to run your client side handler. </BR>
 </BR>
 <B>Note:</B> If you are using Client side Handlers you need to enter the
 <B>ClientWSDDFilePath</B> entry in your <A
 	href="install-guide#Installing Client">axiscpp.conf</A> configuration file.</BR>
-	
+</P>	
 </P>	
 <H2>Running the testHandler</H2>
 <P>

Added: webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/clientuser-guide.ihtml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/clientuser-guide.ihtml?rev=358006&view=auto
==============================================================================
--- webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/clientuser-guide.ihtml (added)
+++ webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/clientuser-guide.ihtml Tue Dec 20 06:50:31 2005
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<HTML>
+<HEAD>
+  <TITLE>Axis C++ Client User's Guide</TITLE>
+</HEAD>
+
+<BODY><H1>Contents</H1>
+<A href="#Introduction">Introduction </A>
+<A href="#Pre_reqs"><BR/>
+Pre-requisites</A>
+<BR/>
+<A href="#Generating_and_using_client_stubs">Generating and using client
+-stubs</A>
+<H1>Introduction
+</H1>
+<P><A name="Introduction"></A>In order to use web services you need to create client-side stubs that help you to access the service You then use these stubs within your application.<BR/>If you are also responsible for writing the service you need to create the service skeletons and then complete them. This document explains how to use the Axis CPP tooling (WSDL2Ws) to generate and use the client code. If you want to learn how to create your web services please <A
+	href="serveruser-guide.html">look here</A>.</P>
+	<H1>Pre-requisites</H1>
+<P><A name="Pre_reqs"></A>WSDL2Ws is a 100% java tool and requires a version of Java to be on the machine that you create your stubs and skeletons on. The version of Java that is required is &gt;= 1.4<BR/>WSDL2Ws also has a number of pre-requisite jar files that need to be added to your classpath when you run the tooling<BR/>
+<BR/>&lt;AxisCPP Install dir&gt;/lib/axis/wsdl2ws.jar: Contains the main WSDL2Ws code.<BR/>&lt;AxisCPP Install dir&gt;/lib/axisjava/axis.jar: Contains the Axis java code which WSDL2Ws is based on<BR/>&lt;AxisCPP Install dir&gt;/lib/axisjava/commons-discovery.jar:<BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/commons-logging.jar;<BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/jaxrpc.jar; <BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/saaj.jar;<BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/wsdl4j.jar
+<BR/>
+<BR/>If you want to learn more about WSDL2Ws please see <A
+	href="arch/WSDL2Ws.html">this reference</A> document.
+</P>
+<H1>Generating
+and using client-side stubs</H1>
+<P><A name="Generating_and_using_client_stubs"></A>AxisCPP has Java based tooling. If you supply the WSDL which describes your service then WSDL2Ws will produce client-side stubs for you. All you need to do is create your application that uses those stubs. Throughout this section we will use the Calculator service that comes with Axis as an example of how to use the tooling.</P>
+<P><B>Note: </B>In order to run the application discussed below you need the &quot;calculator&quot;
+service deployed to a server. If you don't want to deploy the calculator service then you need to follow the instructions below but use your own WSDL files that describe your service. If you do want to deploy the calculator service for Apache web server
+or the simple_axis_server please <A href="serveruser-guide.html">go here</A>.
+Once you've deployed your service then come back to these instructions
+and run the calculator client..</P>
+<H2>Generating Calculator client C++ classes</H2>WSDL2Ws tools will generate the stubs for the client side. It will generate C++ Client class and header files.
+<P>Firstly copy the Calculator wsdl to the client samples directory e.g. (linux)</P>
+<P><STRONG>cd &lt;Axis installation directory&gt;/samples/client/calculator</STRONG></P>
+<P><STRONG> cp -f &lt;Axis installation directory&gt;/wsdls/Calculator.wsdl ./</STRONG></P>
+<P><STRONG>IMPORTANT:In this example we are showing you how to use the WSDL2Ws tooling to generate the stubs using
+Calculator.wsdl. However, in the &lt;Axis installation directory&gt;/samples/client/calculator folder you will already find generated files. If you wish to use those without generating new
+ones you can do so. We recommend that you run the calculator sample with the
+already generated files firstly and later practice using the tooling with Calculator.wsdl.</STRONG> <BR/>
+<BR/>Next you create the client-side stubs that represent the Calculator service.
+</P>
+<P><B>Note: </B>Don't forget to add all of the <A href="#Pre-requisites">pre-requisite</A> jar files into your classpath 
+</P>
+<P><STRONG> java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Calculator.wsdl
+-lc++ -sclient</STRONG></P>
+<P><STRONG> <BR/>
+Note:</STRONG> If you specify <STRONG>-o&lt;target directory&gt;</STRONG>
+you will have source generated inside the specific folder instead of
+the current folder where the tool is run. <BR/>
+<BR/>
+You now have the client-side stubs generated for you. You now need to create a client that uses those stubs. This class contains a main method in which Calculator
+instance is created and its methods are called. </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>Now build your client application with your compiler of choice (in this example we have used g++ on a linux system)<BR/>
+<BR/>
+<STRONG>cd &lt;Axis installation directory&gt;/samples/client/calculator</STRONG><BR/>
+</P>
+<STRONG>g++ *.cpp -I&lt;Axis installation directory&gt;/include -L&lt;Axis installation directory&gt;/lib -ldl
+-laxiscpp_client -ocalculator</STRONG> <BR/>
+<P><BR/>
+<B>Note:</B>In order to run your application you need the calculator service deployed to a server. In order to do that for Apache web server or the simple_axis_server please <A
+	href="serveruser-guide.html">go here</A>. Once you've deployed your service then come back to these instructions and run the calculator service. <BR/>
+<BR/>
+In this instance we have deployed the service to localhost. and are asking the calculator service to add 10 and 5 for us.<BR/>
+<BR/>
+<A name="Running Calculator Client"></A>Running the calculator sample (linux)<BR/>
+<STRONG>./calculator add 10 5 http://localhost/axis/Calculator</STRONG></P>
+
+
+
+<P>Now that you've done the sample here you can go on and create your own services and clients using your own service definitions files (WSDL's).<BR/>
+<BR/>
+Thankyou for using Axis CPP :-)</P></BODY>
+</HTML>

Added: webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/install-guide.ihtml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/install-guide.ihtml?rev=358006&view=auto
==============================================================================
--- webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/install-guide.ihtml (added)
+++ webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/install-guide.ihtml Tue Dec 20 06:50:31 2005
@@ -0,0 +1,246 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html"></meta>
+  <title>Axis C++ Installation Guide</title>
+</head>
+
+<body>
+<h1>Axis C++ Installation and Configuration Guide</h1>
+
+<P><B></B> <A name="Introduction"></A></P>
+<H2>Introduction</H2>
+
+<P>This guide will help you to start with Axis C++. This guide will
+explain the minimum steps needed to install Axis C++ in both a client
+and a server environment. <BR/>
+<B>Note:</B>
+Within this document we declare environment
+variables; You may find that the instructions here need to be altered to
+your particular operating system. </P>
+<H2><STRONG>Contents</STRONG></H2>
+
+
+
+<UL>
+<li><a href="#Introduction">Introduction</a></li>
+<li><a href="#What">Pre-requisites</a></li>
+<LI><A href="#Install">Installing and configuring Axis C++</A></LI>
+	<UL>
+		<LI><A href="#Installing_Client">Axis C++ Client - installation and
+		configuration</A></LI>
+		<LI><A href="#Server_installation_and_configuration">Axis C++ server
+		- installation and configuration</A></LI>
+		<LI><A href="#Simple_Axis_Server_Installation_and_Configuration">Simple_Axis_Server
+		- Installation and Configuration</A></LI>
+	</UL>
+</UL>
+
+
+<p><a name="What"></a></p>
+<H2>Pre-requisites</H2>
+You need to have the following in order to run Axis C++.<BR/>
+<H3><A name="Client and server pre-reqs"></A>Client and server</H3>
+<P>
+<A href="http://archive.apache.org/dist/xml/xerces-c/Xerces-C_2_2_0/">Xerces
+C++ (2.2.0)</A> XML parser<BR/>
+<BR/>
+
+Axis C++ needs an XML parser to parse SOAP messages and WSDD files. It
+has a parser abstraction layer that helps users to select/switch between
+parsers. However only one parser library could be used at a time.
+Currently Xerces parser is supported by Axis C++.
+</P>
+<H3>Server only</H3>
+<P><A name="server_prereqs"></A><A href="http://httpd.apache.org/download.cgi">Apache web server </A> (2.0.x or 1.3.x)&nbsp; - If you are going to deploy services to Apache web server (and not
+<A href="#Simple Axis Server Installation and Configuration">simple_axis_server</A>
+) then you
+need to have Apache built with module .so support.<BR/>
+</P>
+
+<p><a name="Install"></a></p>
+<H2>Installing and Configuring Axis C++</H2>
+
+
+
+<H3>Client Installation and Configuration</H3>
+<H4>1. Download Axis C++</H4>
+<P><A name="Installing_Client"></A><A href="http://ws.apache.org/axis/cpp/download.html">Download Axis
+C++</A> binary distribution and extract the package into a directory of your choice.
+</P>
+<H4><B>2. Configure environment variables</B></H4>
+<B>set AXISCPP_DEPLOY<BR/>
+<BR/></B>AXISCPP_DEPLOY="Path to the folder where you installed Axis C++
+<BR/>
+e.g. <I>AXISCPP_DEPLOY="/usr/local/axiscpp_deploy"<B><BR/>
+<BR/>
+set LIBRARY_PATHS </B></I>
+
+<P>The library path needs to have the xml parser libraries and the axis libraries included.</P> Windows:<BR/>
+PATH=&lt;xerces installation directory&gt;/bin;%AXISCPP_DEPLOY/bin%;%PATH%<P>Linux:<BR/>LD_LIBRARY_PATH="&lt;xerces installation directory&gt;/lib:$AXISCPP_DEPLOY/lib:$LD_LIBRARY_PATH"
+</P>
+
+<H4>3. Set Engine Wide Settings in Configuration File</H4>
+<P>Axis C++ uses a configuration file to let the user specify
+preferences such as log file locations, transport and parser libs to be
+used and location of deployment descriptor files. <BR/>
+A sample configuration file is installed in
+$AXISCPP_DEPLOY/etc on linux or %AXISCPP_DEPLOY% on windows systems. Edit this file to match your systems
+settings and copy it to axiscpp.conf<BR/>
+
+<BR/>
+
+Configuration file has the following syntax on the client-side:</P>
+<P>The comment character is '#'<BR/>Transport_http - HTTP transport library: Required<BR/>
+Channel_HTTP - Channel transport library: Required<BR/>
+XMLParser - The Axis XML parser library that comes with your configuration: Required<BR/>
+SecureInfo: SSL configuration information: Optional - only required if you are going to use ssl<BR/>
+ClientWSDDFilePath - Path to the client wsdd: Optional -  only required if you are using client-side handlers<BR/>ClientLogPath - Path to the Axis C++ client log: Optional -  only required if you want engine trace for debugging purposes</P>
+<P>A sample <B>axiscpp.conf</B> file for a client (linux)</P>
+
+<PRE>
+
+Transport_http:/usr/local/axiscpp_deploy/lib/libaxis3_transport.so
+Channel_HTTP:/usr/local/axiscpp_deploy/lib/libaxis3_transport_channel.so
+XMLParser:/usr/local/axiscpp_deploy/lib/libaxis_xercesc.so
+ClientWSDDFilePath:/usr/local/axiscpp_deploy/etc/client.wsdd
+ClientLogPath:/usr/local/axiscpp_deploy/log/AxisClientLog</PRE><H3><I></I></H3><P><BR/>Once you have completed the above steps you should be ready to <A
+	href="user-guide.html">create and run</A> your client application using AXIS C++ !<BR/>
+<BR/></P>
+<H3>Server Installation and Configuration</H3>
+<P><A name="Server_installation_and_configuration"></A></P>
+<H4>1. Download Axis C++</H4>
+<P><A href="http://ws.apache.org/axis/cpp/download.html">Download Axis
+C++</A> binary distribution and extract the package into a directory of
+your choice. <B><BR/>
+</B></P>
+<H4>2. Install Apache Web Server</H4>
+<p> If you are going to deploy services to Apache and not use the simple_axis_server then you need to install apache webserver. In case you have already installed Apache
+, make sure that 'so modules' are enabled. <BR/> This is because
+Axis C++ server engine is implemented as a 'so module'. (For Apache
+1.3.x use --enable-module=so; for Apache 2.0.x use --enable-so when
+configuring. See Apache web server documentation for more details)</p>
+
+<H4>3. Install Xerces C++ (2.2.0)</H4>
+<p>See the Xerces parser's documentation for installation instructions. </p>
+<H4>4. Configure environment variables</H4>
+<p>
+<b></b>The Axis server runtime requires the same variables to be set as the Axis client engine does.</p>
+<P><B>set AXISCPP_DEPLOY<BR/>
+<BR/>
+</B>AXISCPP_DEPLOY="Path to the folder where you installed Axis C++" <BR/>
+
+e.g. <I>AXISCPP_DEPLOY="/usr/local/axiscpp_deploy"<B><BR/>
+<BR/>
+set LIBRARY_PATHS </B></I></P>
+<P>The library path needs to have the xml parser libraries and the axis
+libraries included.</P>
+<P>Windows:<B><BR/>
+PATH=&lt;xerces installation path&gt;/bin;%AXISCPP_DEPLOY/bin%;%PATH%</B></P>
+<P>Linux:<B><BR/>
+LD_LIBRARY_PATH="&lt;xerces installation
+path&gt;/lib:$AXISCPP_DEPLOY/lib:$LD_LIBRARY_PATH"</B></P>
+<H4>5. Configure Engine Wide Settings in Configuration File</H4>
+<P><P><A name="Configure server axiscpp.conf"></A>As with the client-side the Axis C++ server-side engine uses a configuration file to let the user specify
+preferences such as log file locations, transport and parser libs to be
+used and location of deployment descriptor files. <BR/>
+A sample configuration file is installed in
+$AXISCPP_DEPLOY/etc folder (or in %AXISCPP_DEPLOY% on windows). Edit this file to match your systems
+settings and copy or rename it to &quot;axiscpp.conf&quot;<BR/>
+
+<BR/>
+
+Configuration file has the following <B>Syntax:</B></P>
+<P><BR/>
+
+</P>
+<P>The comment character is '#'<BR/>
+WSDDFilePath - Path to the server wsdd file: Required - so that Axis knows what services and handlers you have deployed<BR/>Transport_http - Axis HTTP transport library: Required <BR/>
+Channel_HTTP - Axis Channel transport library: Required  <BR/>
+XMLParser - Axis XML parser library: Required<BR/>
+LogPath: Path to the Axis C++ server log: Optional - only required if
+you want to see trace from the Axis Engine for debugging purposes</P>
+<P>A sample server <B>axiscpp.conf</B> file (Linux):</P><PRE>WSDDFilePath:/usr/local/axiscpp_deploy/etc/server.wsdd
+LogPath:/usr/local/axiscpp_deploy/log/AxisLog
+XMLParser:/usr/local/axiscpp_deploy/lib/libaxis_xercesc.so
+Transport_http:/usr/local/axiscpp_deploy/lib/libaxis3_transport.so
+Channel_HTTP:/usr/local/axiscpp_deploy/lib/libaxis3_transport_channel.so
+</PRE><H4>6. Setting Axis files to be executable</H4>
+<P>On non-windows platforms you need to ensure  global access rights to the Axis C++ deploy folder to make sure that Axis C++ works properly.<BR/>
+<BR/>
+
+<I><B>chmod -R 777 $AXISCPP_DEPLOY</B></I> </P>
+
+<H4>7. Configure Apache Module</H4>
+<p>
+<b>Note:</b> to execute the following steps, you may need to have <strong>administrator rights</strong> on your machine.
+<BR/>
+<BR/>
+
+Now you need to  edit
+<b>httpd.conf</b> file in &lt;path to Apache web server installation&gt;/conf
+and add the following lines at the bottom of that file (assuming you
+are using Apache 2.0.x):<BR/>
+
+(Linux)<BR/>
+<BR/>
+
+<b>LoadModule axis_module modules/libaxiscpp_mod2.so</b><BR/>
+
+<b>&lt;Location /axis&gt;</b><BR/>
+<b>SetHandler axis </b> <BR/>
+<b>&lt;/Location&gt;</b><BR/>
+<BR/>
+For Apache1.3.x LoadModule line should read as:<BR/>
+
+<b>LoadModule axis_module libexec/libaxiscpp_mod.so</b> </p><pre>
+</pre>
+
+<H4>7. Deploying Axis Module to Apache Web Server </H4>
+
+<p>Now we need to copy Apache module (libaxiscpp_mod2.so - linux names- for Apache 2.0.x and 
+libaxiscpp_mod.so for Apache 1.3.x) to the correct places and start Apache web server.
+The steps to follow are:
+<ol>
+<li> Copy libaxiscpp_mod2.so to /&lt;your Apache 2.0.x home&gt;/modules (or copy libaxiscpp_mod.so to /&lt;your Apache 1.3.x home&gt;/libexec)</li>
+<li> Start Apache /&lt;path to Apache installation&gt;/bin/apachectl start </li>
+</ol> 
+
+<p>
+To do the same you can you can use scripts in $AXISCPP_DEPLOY/bin.</p>
+
+<b>cd $AXISCPP_DEPLOY/bin </b> <BR/> 
+<p>                                       
+To deploy with Apache 2.0.x </p>
+<b>sh deploy_apache2.sh </b> <BR/>
+<p>
+To deploy with Apache 1.3.x </p>
+<b>sh deploy_apache.sh </b>
+
+<H4>8. See Axis C++ in action</H4>
+<p>
+Now the installation is complete. You can verify that the server side is working by accessing the URL <a  href="http://localhost/axis">http://localhost/axis</a> using your web browser. You should get the Axis C++ welcome page and this page will show you a list of deployed services as specified by the
+&lt;Axis Installation directory&gt;/conf/server.wsdd file. Although at this stage you won't have any services deployed yet.</p><p>Now you can <A
+	href="clientuser-guide.html">run a client sample</A> and see if it works.</p>
+
+<strong></strong><p>
+</p>
+<H3> Simple Axis Server installation and configuration</H3>
+
+<p><A name="Simple_Axis_Server_Installation_and_Configuration"></A>1. Make sure that you have set the  <b>AXISCPP_DEPLOY</b>  environment variable to point to your deployment folder as mentioned above </p>
+
+<p>2. Create your axiscpp.conf file as above for the Apache server-side making sure that the contents of that  file match your system settings <p>3. Run simple axis server in  <b> $AXISCPP_DEPLOY/bin </b> <BR/>
+Synopsis: simple_axis_server server-port Where server-port is the port on which you would like the server to listen for
+client requests.</p>
+
+<p> For Example (linux):</p>
+<p><b>cd $AXISCPP_DEPLOY/bin </b> </p>
+<p><b>./simple_axis_server 9090</b> </p>
+
+<p>5. Run clients in <b> $AXISCPP_DEPLOY/bin </b> </p>
+<p> On a different shell: </p>
+<p><b>cd $AXISCPP_DEPLOY/bin </b> </p>
+<p><b>./base http://localhost:9090/axis/base </b> </p>
+<p>Similarly you could run the other samples. </p>
+
+</body>
+</html>
\ No newline at end of file

Added: webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/serveruser-guide.ihtml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/serveruser-guide.ihtml?rev=358006&view=auto
==============================================================================
--- webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/serveruser-guide.ihtml (added)
+++ webservices/axis/trunk/site/src/cpp/src/documentation/content/xdocs/cpp/serveruser-guide.ihtml Tue Dec 20 06:50:31 2005
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<HTML>
+<HEAD>
+  <TITLE>Axis C++ Server User's Guide</TITLE>
+</HEAD>
+
+<BODY><H1>Contents</H1>
+<UL>
+	<LI><A href="#Introduction">Introduction</A></LI>
+	<LI><A href="#Pre-requisites">Pre-requisites</A></LI>
+	<LI><A href="#Generating_and_deploying_services">Generating and
+	deploying services</A></LI>
+	<UL>
+		<LI><A href="#Generating_the_service_skeletons">Generating the service
+		skeletons</A></LI>
+		<LI><A href="#Code_the_service">Code the service</A></LI>
+		<LI><A href="#Build_the_server">Build the service</A></LI>
+		<LI><A href="#Deploy_the_service">Deploy the service</A>
+		<UL>
+			<LI><A href="#Deploying_your_service_manually">manually</A></LI>
+			<LI><A href="#Deploying_your_service_using_the_admin_tool">using the
+			AdminClient</A></LI>
+		</UL>
+		</LI><LI><A href="#Checking_the_config">Checking your deployment</A></LI>
+	</UL>
+</UL>
+<H1>Introduction</H1>
+<P><A name="Introduction"></A>In order to use web services you need to create client-side stubs that access the service and, if you are also responsible for writing the service you need to create the service skeletons and then complete them. This document explains how to use the Axis CPP tooling (WSDL2Ws) to generate the server code. It then goes on to show how to deploy a generated service to an Apache webserver (and by implication the simple_axis_server).</P>
+<H1>Pre-requisites</H1>
+<P><A name="Pre-requisites"></A>WSDL2Ws is a 100% java tool and requires a version of Java to be on the machine that you create your stubs and skeletons on. The version of Java that is required is &gt;= 1.4<BR/>WSDL2Ws also has a number of pre-requisite jar files that need to be added to your classpath when you run the tooling<BR/>
+<BR/>&lt;AxisCPP Install dir&gt;/lib/axis/wsdl2ws.jar: Contains the main WSDL2Ws code.<BR/>&lt;AxisCPP Install dir&gt;/lib/axisjava/axis.jar: Contains the Axis java code which WSDL2Ws is based on<BR/>&lt;AxisCPP Install dir&gt;/lib/axisjava/commons-discovery.jar:<BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/commons-logging.jar;<BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/jaxrpc.jar; <BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/saaj.jar;<BR/>
+&lt;AxisCPP Install dir&gt;/lib/axisjava/wsdl4j.jar
+</P><H1>Generating and deploying services</H1>
+
+<P><A name="Generating_and_deploying_services"></A>
+</P><H2>Generate the service skeletons</H2>
+<P><A name="Generating_and_deploying_services"></A>
+As <A href="clientuser-guide.html">with the client-side</A> we will use the Calculator service to show you how to use the tooling and deploy the generated service to the server runtime</P>
+<P>Inside the folder <STRONG>&lt;Axis installation directory&gt;/wsdls/ </STRONG>you will find Calculator.wsdl file which we will use to generate the server-side skeleton and Wrappers. Here is the command line arguments to
+generate the skeleton.</P>
+<P><STRONG>IMPORTANT:In this sample we generate the skeletons using
+Calculator.wsdl and the WSDL2Ws tool. But in the folder &lt;Axis Installation directory&gt;/samples/server/calculator 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 later do the same with code generated from Calculator.wsdl.<BR/>
+</STRONG></P>
+
+
+<B>Note: </B>Don't forget to add all of the <A
+	href="#Pre-requisites">pre-requisite</A> jar files into your classpath before running the WSDL2Ws tooling
+<STRONG><BR/>
+<BR/>
+cd &lt;Axis Installation directory&gt;/samples/server/calculator</STRONG><BR/>
+<P><BR/><STRONG> java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws
+Calculator.wsdl -lc++ -sserver</STRONG>
+<B><BR/>
+<BR/>
+Note:</B> If you give <STRONG>-o &lt;output directory name&gt; </STRONG>then the output folder is generated for you and the generated source put there.
+If you do not specify this option then the source is put in the folder where the tool is run.
+</P>
+
+
+<H2>Code the Service</H2>
+<P><A name="Code_the_service"></A>Now that you have generated your service skeletons you need to fill out the logic that the service will perform. As we've already mentioned, in the case of the calculator example we have given you pre-filled  skeletons in the <STRONG>&lt;Axis
+Installation directory&gt;</STRONG>/samples/server/calculator directory to show you how it's done.
+</P>
+
+<H2>Build the service<A></A></H2>
+<P><A name="Build the server"></A>Once you've filled in the skeletons for your service you need to build
+the service into a library that can be deployed to the Axis server
+runtime.
+</P>
+<P><B>For example:</B> To build the service library (example using linux and g++)</P>
+
+<P><STRONG> g++ -shared -I&lt;Axis Installation directory&gt;/include -olibcalculator.so *.cpp
+</STRONG></P>
+
+<P>libcalculator.so is the name you give to your service library. You can
+give your own libraries any name you wish. But remember (on linux) to prefix with lib and suffix with
+.so.</P>
+
+<H2>Deploy the service<A></A></H2>
+<P><A name="Deploy_the_service"></A>You can either deploy the file manually to the server or using a provided administration tool  (AdminClient). The first section
+shows you how to deploy your Web Service manually, without using the
+AdminClient tool.
+</P>
+
+<H3>Deploying your service manually<A></A></H3>
+<P><A name="Deploying_your_service_manually"></A>Lets say that the Apache installation folder is &lt;Apache_Folder&gt;.
+<BR/>
+Let's also say that you have
+<A href="install-guide.html#Configure server axiscpp.conf">set up</A>
+your Axis configuration file (axiscpp.conf) to use the &lt;Apache_Folder&gt;/Axis/conf/server.wsdd server configuration file<BR/>
+<OL>
+	<LI>
+Copy the above <B>libcalculator.so</B> to the folder<B>
+	&lt;Apache_Folder&gt;/Axis/webservices.</B><BR/>
+	</LI>
+	<LI> Add the following to the server.wsdd at the service level.
+	(Please make sure you add these lines at the service level and no other) The example below uses linux path and library names<BR/>
+	<BR/>
+	<B>&lt;service name="Calculator" provider="CPP:RPC"
+	description="Calculator Web Service"&gt; <BR/>
+	&lt;parameter name="className"
+	value="&lt;Apache_Folder&gt;/Axis/webservices/libcalculator.so"/&gt;
+	<BR/>
+	&lt;/service&gt; </B><BR/>
+	</LI>
+	<LI><A href="#Checking the config">Check your deployment</A> has succeeded <BR/>
+	</LI>
+	<LI>That's all there is to it ! You should now be able to <A
+		href="clientuser-guide.html#Running Calculator Client">run the calculator client</A> against this service.</LI>
+</OL>
+
+<H3>Deploying your service using the AdminClient Tool</H3>
+
+<p><A name="Deploying_your_service_using_the_admin_tool"></A>As an alternative to manually deploying the service to the server you can use the <B>AdminClient</B> tool supplied with Axis CPP.<BR/>
+The wsdl2ws Tool generates the deploy.wsdd and the undeploy.wsdd files which are needed for the AdminClient. Once you have these files, you can deploy the web service (in this case the calculator service) using the AdminClient. <BR/>
+<BR/>
+The client takes in the following parameters<BR/>
+<BR/>
+<B>AdminClient &lt;server machine name &gt; &lt;Port that axis is configured for&gt; &lt;server wsddfile to deploy&gt;</B>
+<BR/>
+<BR/>
+<BR/>Before running this command make sure that the contents of the wsdd file are correct for your configuration - especially the location of the libraries containing your service.<BR/>
+<BR/>
+A typical invocation of the AdminClient looks like this....<BR/>
+<BR/>
+<B>AdminClient localhost 80 deploy.wsdd</B><BR/>
+where <B>localhost</B> is the server where the Axis cpp server is hosted and <B>80</B> is the port where Axis is configured for.
+</P>
+
+<H2>Checking your deployment configuration</H2>
+<P><A name="Checking_the_config"></A>
+
+<OL>
+	<LI>Ensure that your server is started<BR/>
+	</LI>
+	<LI>Open a browser and enter the link <B>http://localhost/axis</B> . <BR/>
+	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.</LI>
+</OL>
+</P>
+</BODY>
+</HTML>