blob: 6ae29fd26cd13670ded9368983c95da88d8117f5 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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 User 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 User Guide</h1>
</div>
<div class="h3">
<div class="h3">
<h3>Axis C++ Windows User Guide</h3>
</div>
<div class="h4">
<h4>Creating And Deploying your own Web Service</h4>
</div>
<p>
<a href="#create">Creating the web service</a>
<br>
<a href="#wsdl2ws">How to use the WSDL2WS tool on the command line</a>
<br>
<a href="#deploy">Deploying your web service</a>
<br>
<a href="#deploy">Deploying your web service using AdminClient Tool</a>
<br>
<a href="#client">Coding the client</a>
<br>
<a href="#sample">Running your sample</a>
<br>
<a href="#transport">Axis Transport and Parser Library</a>
<br>
<a href="#handlers">Handlers</a>
<br>
<a href="#ssl">SSL Client</a>
<br>
<a href="#session">Session Headers</a>
<br>
<a href="#IPV6">IPV6</a>
<br>
<br>
<br>
<a href="#axis3">Axis 3 Transport</a>
<br>
<br>
<br>
<strong>Before you follow this guide, please make sure that you have followed the</strong> <a href="wininstall-guide.html"><strong>Windows Installation guide</strong></a>
</p>
<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>
<strong>Definitions:</strong>
<br>Axis_Extract -&gt; The folder to which the Axis c++ binary distribution is extracted<br>[Axis_Folder] -&gt; The deploy folder of the binary distribution which is copied to the apache installation</p>
<p>
<a name="create"></a>
</p>
<div class="h4">
<h4>Creating the web service</h4>
</div>
<br>
<p>Currently axis supports two methods to create and deploy a Web Service.<br>Method 1) A top down approach where you start with a WSDL.<br>Method 2) A bottom up approach where you start with a pre-written web service.<br>
<br>Here we discuss the first approach since the tool to support Method 2 (i.e wcg.exe) is in a primitive and frozen state.<br>Here the document is written with the idea that the user uses Visual C++ (VC). But the user could use this guide with a different IDE of his choice.<br>
<br>
<strong>Method 1</strong>
<br>
<br>This method assumes that the user has written the wsdl of the service which he needs to deploy. In this method user will start with this wsdl and the tool will generate the web service skeleton and other required files.<br>
<br>1) There is a folder called "simple" inside the samples/server folder in your axiscpp binary distribution. Inside this you can find the relevant wsdl for the calculator sample. Get the wsdl (eg:<a href="../sample/server/simple/Calculator.wsdl">Calculator.wsdl</a>)<br>
<br>2) Run the WSDL2WS tool (refer the section below 'to use the WSDL2WS tool on the command line') and generate the server side skeletons and wrappers. These files will be in two new folders which are generated from the tool called 'ServerOut' and 'ClientOut'.<br>
<br>3) Create a VC workspace.<br>
<br>4) Create a 'Win32 Static Library' project in this workspace.<br>
<br>5) From the generated 'ServerOut'folder, add the following files to this project.<br> Calculator.cpp Calculator.h<br>
<br>6) Set the include path to the include directory of the binary distribution (These include files are in Axis_Extract/include/).<br>
<br>7) Fill the empty methods of the generated skeletons.<br>
<br>8) Generate the lib (eg: MyCalculator.lib)<br>
<br>9) Now create a 'Win32 Dynamic-Link Library' project.<br>
<br>10) From the generated 'ServerOut'folder,add the following files to this project.<br> CalculatorService.cpp, CalculatorWrapper.cpp and CalculatorWrapper.h<br>
<br>11) Set the include path to the include directory of the binary distribution.<br>
<br>12) Add the above created lib (Calculator.lib) as the input library of this project.<br>
<br>13) Build and create the DLL. (Calculator.dll)</p>
<p>
<a name="wsdl2ws"></a>
</p>
<div class="h4">
<h4>How to use the WSDL2WS tool on the command line</h4>
</div>
<br>
<p>To use WSDL2Ws java tool on the command line you require jdk1.4 or above.<br>
<br>To use WSDL2Ws java tool you have to set the CLASSPATH Environment Variable to point to the following latest jar files.<br>
<br>
<strong>Note:</strong> The latest jar files are in <a href="http://apache.towardex.com/ws/axis/1_2beta/">http://apache.towardex.com/ws/axis/1_2beta/</a>
<br>
<br>
<br>axis.jar<br>commons-discovery.jar<br>commons-logging.jar<br>jaxrpc.jar<br>saaj.jar<br>wsdl4j.jar<br>xml-apis.jar<br>
<br>The CLASSPATH Environment Variable should have the absolute paths of the jars (including the jar file name) given as a semicolon separated list.<br>
<br>
<br>Open a command window. Change directory to Axis_Extract\lib\axis. Create a folder of your choice and we will call this folder as [Wsdl2ws_Folder].<br>
<br>Now copy the wsdl file (eg.Calculator.wsdl) which you use, to the folder [Wsdl2ws_Folder].<br>Copy the file wsdl2ws.jar from Axis_Extract\lib\axis to [Wsdl2ws_Folder]<br>Then change the directory to [Wsdl2ws_Folder] and run the following command to generate the server side skeletons and wrappers.<br>
<br>java -classpath .\wsdl2ws.jar;.;%CLASSPATH% org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Calculator.wsdl -o./ServerOut -lc++ -sserver<br>
<br>If the file generation is successful the tool will display the files that it has generated. The skeletons and wrappers will be generated in [Wsdl2ws_Folder]\ServerOut.<br>
<br>Run the following command to generate the client stubs.<br>
<br>java -classpath .\wsdl2ws.jar;.;%CLASSPATH% org.apache.axis.wsdl.wsdl2ws.WSDL2Ws Calculator.wsdl -o./ClientOut -lc++ -sclient<br>
<br>The generated client stubs will be in [Wsdl2ws_Folder]\ClientOut<br>
<br>
<strong>Note:</strong>More details on WSDL2Ws Tool can be found by clicking on the following link <a href="arch/WSDL2Ws.html">WSDL2Ws Tool</a>
</p>
<p>
<a name="deploy"></a>
</p>
<div class="h4">
<h4>Deploying your web service</h4>
</div>
<br>
<p>Axis cpp user can use the AdminClient tool to deploy a service or can manually deploy. The first section shows you how to deploy your Web Service manually, without using the AdminClient tool.<br>
<br>Lets say that the apache installation folder is [Apache_Folder].<br>(The default installation is apache 1.3.X and the path is "C:\Program Files\Apache Group\Apache" and the path for apache 2.X is "C:\Program Files\Apache Group\Apache2")<br>
<br>1) Copy the above Calculator.dll to the folder [Apache_Folder]/Axis/webservices.<br>2) Add the following to the server.wsdd at the service level. Please make sure you add these lines at the correct place, i.e at service level. ([Apache_Folder]/Axis/conf/server.wsdd)<br>
<br>&lt;service name="Calculator" provider="CPP:RPC" description="Calculator Web Service"&gt;<br>&lt;parameter name="className" value="[Apache_Folder]\Axis\webservices\Calculator.dll"/&gt;<br>&lt;parameter name="allowedMethods" value="add subtract "/&gt;<br>&lt;/service&gt;<br>
<br>Now you have deployed your web service</p>
<p>
<a name="admin"></a>
</p>
<div class="h4">
<h4>Deploying your web service Using AdminClient Tool</h4>
</div>
<p>The wsdl2ws Tool generates the deploy.wsdd and the undeploy.wsdd files which are needed for the AdminClient. Once we have these files, we have to deploy the web service (in this case the calculator service) with the AdminClient. We do this with the AdminClient.exe which comes with axiscpp binary distribution. A typical invocation of the AdminClient looks like this.</p>
<p>
<strong>AdminClient &lt;server&gt; &lt;Port&gt; &lt;wsddfile&gt;</strong>
</p>
<p>
<strong>AdminClient localhost 80 deploy.wsdd</strong>
</p>
<p>where local host would be the server where the Axis cpp server is hosted and 80 would be the port at which it runs.</p>
<p>
<a name="client"></a>
</p>
<div class="h4">
<h4>Coding the client</h4>
</div>
<br>
<p>With the WSDL2WS tool you have almost developed your client. What you have to do next is write a file which has a main method and create an object of the stub and invoke your methods on that.<br>
<br>1) Create a vc workspace.<br>2) Create a 'Win32 Console Application'.<br>3) Add files to this project from the above generated 'ClientOut' folder.<br>4) Set the include path to the include directory of the binary distribution.<br>5) Add the following libs to the library modules path of this project.<br>
<br>Axis_Extract/lib/axis/<br>Axisclient.lib<br>
<br>6) Create a file with a main method which looks similar to the following and add this file to this project.<br>
</p>
<pre>#include "Calculator.h"
int main()
{
Calculator c;
int result = c.add(40, 20);
printf("result = %d", result);
return 0;
}</pre>
<p>7) Now build and create the Client.exe</p>
<p>
<a name="sample"></a>
</p>
<div class="h4">
<h4>Running your sample</h4>
</div>
<p>1) Restart Apache.<br>2) Run the Calculator.exe</p>
<p>
<a name="caluculatorsample"></a>
</p>
<br>
<p>SUCCESS ! If you get the result, you are done.</p>
<p>
<a name="transport"></a>
</p>
<div class="h4">
<h4>Transport Library and Parser Library</h4>
</div>
<p>HTTPTransport.dll and HTTPChannel.dll (Which can be found at Axis_Extract/bin) should be placed in the path, and should be specified as the value to the keys "Transport_http" and "Channel_HTTP" respectively in axiscpp.conf [Axis_Folder]/axiscpp.conf Or in the same place as the client.exe.</p>
<p>Rename AxisXMLParser_Xerces.dll to AxisXMLParser.dll and give the path of the AxisXMLParser.dll as the value of the key XMLParser in axiscpp.conf Or in the same place as the client.exe.<br> xerces-c_2_2_0.dll should be given in the path.<br>
</p>
<p>
<strong>Axiscpp.conf file contains the following paths</strong>
<br>
<br>LogPath:XXXX<br>WSDDFilePath:YYYY<br>Transport_http:ZZZZ<br>Channel_HTTP:BBBB<br>XMLParser:WWWW<br>
<br>XXXX is the path to a file named AxisLog (The log file)and YYYY is the path to the server.wsdd file.<br>
<br>i.e.<br>LogPath:[Apache_Folder]\Axis\logs\AxisLog.log<br>WSDDFilePath:[Apache_Folder]\Axis\conf\server.wsdd<br>Transport_http:[Apache_Folder]\Axis\libs\HTTPTransport.dll<br>Channel_HTTP:[Apache_Folder]\Axis\libs\HTTPChannel.dll<br>XMLParser:[Apache_Folder]\Axis\libs\AxisXMLParser.dll<br>
</p>
<p>
<a name="handlers"></a>
</p>
<div class="h4">
<h4>Handlers</h4>
</div>
<p>Handlers are pluggable components in Axis C++. We have included a set of sample handlers for your reference. You could write your own handlers by following the instructions given for the sample Handlers.</p>
<p>
<strong>Note: If you are using Client side Handlers you need to enter the following entry to the [Axis_Folder]/axiscpp.conf configuration file.</strong>
</p>
<p>ClientWSDDFilePath:Axis\conf\client.wsdd</p>
<p>After entering this entry to your [Axis_Folder]/axiscpp.conf configuration file will look like:</p>
<p>LogPath:Axis\logs\AxisLog.txt<br>WSDDFilePath:Axis\conf\server.wsdd<br>ClientWSDDFilePath:Axis\conf\client.wsdd</p>
<strong>Testing the sample Handlers</strong>
<p>We have included the following sample Handlers for your reference.</p>
<p>1) echoStringHeaderHandler (A server side handler sample) This sample handler will simply echo (i.e send back) the string which you send in the SOAP request.<br>2)testHandler (A client side handler sample)</p>
<p>This sample handler will simply add a SOAP Header to the generated SOAP request.</p>
<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>
<p>
<strong>echoStringHeaderHandler</strong>
</p>
<p>
<strong>Building the Sample Handlers in VC</strong>
</p>
<br>
<strong>Building echoStringHeaderHandler (A server side handler sample)</strong>
<br>
<p>The VC dsw file (ServerHandlers.dsw) is available at Axis_Extract/vc/samples/server/ ServerHandlers.dsw. Open this file and build the project echoStringHeaderHandler. Once the build is successful you will find the DLL (echoStringHeaderHandler.dll) at Axis_Extract/bin. If you see this DLL at the above location you are done with the first step.</p>
<p>
<strong>Configuring the Handler</strong>
</p>
<p>Now edit the [Axis_Folder]/conf/server.wsdd to include the handler for a particular service.</p>
<p>&lt;service name="Calculator" provider="CPP:RPC" description="Simple Calculator Axis C++ Service "&gt;<br>&lt;requestFlow name="CalculatorHandlers"&gt;<br> &lt;handler name="ESHHandler" type="Axis_Extract/bin/echoStringHeaderHandler.dll"&gt;<br>&lt;/handler&gt;<br> &lt;/requestFlow&gt;<br> &lt;responseFlow name="CalculatorHandlers"&gt;<br> &lt;handler name="ESHHandler" type="Axis_Extract/bin/echoStringHeaderHandler.dll"&gt;<br> &lt;/handler&gt;<br> &lt;/responseFlow&gt;<br> &lt;parameter name="allowedMethods" value="add sub mul div "/&gt;<br>&lt;parameter name="className" value="Axis\webservices\Calculator.dll" /&gt;<br>&lt;/service&gt;</p>
<p>
<strong>Note: Make sure you specify the correct path of the handler dll in the server.wsdd file.</strong>
</p>
<p>Now you are almost done to run your server side handler.<br>Restart the Apache server.</p>
<br>
<br>
<strong>Running the Handler</strong>
<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>
<p>
<strong>testHandler</strong>
</p>
<p>
<strong>Building the Sample Handlers in VC</strong>
</p>
<p>Building testHandler (A client side handler sample)</p>
<p>The VC dsw file (ServerHandlers.dsw) is available at Axis_Extract/vc/samples/client/ClientHandlers.dsw. Open this file and build the project TestHandler. Once the build is successful you will find the DLL (testHandler.dll) at at Axis_Extract/bin. If you see this DLL at the above location you are done with the first step.</p>
<p>
<strong>Configuring the Handler</strong>
</p>
<p>Now edit the [Axis_Folder]/conf/client.wsdd to include the handler for a particular service.</p>
<p>&lt;service name="Calculator" provider="CPP:DOCUMENT" description="Calculator web service"&gt;<br>&lt;requestFlow name="CalculatorHandlers"&gt;<br> &lt;handler name="TestHandler" type="Axis_Extract/bin/testHandler.dll"&gt;<br>&lt;/handler&gt;<br> &lt;/requestFlow&gt;<br>&lt;/service&gt;</p>
<p>
<strong>Note: Make sure you specify the correct path of the handler dll in the client.wsdd file.</strong>
</p>
<p>Now you are almost done to run your client side handler.</p>
<p>
<strong>Note: If you are using Client side Handlers you need to enter the ClientWSDDFilePath entry in the [Axis_Folder]/axiscpp.conf configuration file. (See above)</strong>
</p>
<p>
<strong>Running the Handler</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 Axis_Extract/bin/Calculator.exe)</p>
<p>Handler Notes:</p>
<p>1) You can see the Handler behavior through the TCP Monitor. (TCP Monitor is a Axis Java tool)<br>2) To get an idea of Handlers look at the Handler sample source files.<br>a. echoStringHeaderHandler (Axis_Extract/samples/server/echoStringHeaderHandler)<br>b. testHandler (Axis_Extract/samples/client/testHandler)</p>
<p>
<a name="ssl"></a>
</p>
<div class="h4">
<h4>SSL Client</h4>
</div>
<p>This section describes how to use an Axis C++ SSL secure client to access web services hosted on a secure web service.<br>
<br>The SSL implementation for the client in Axis C++ uses the openssl opensource library.<br>
<br>To aid to compile the secure channel dll<br>
<br>1. Install the openssl 0.9.7e binary distribution.<br>2. Copy the include files from the openssl installation to c\include\openssl in your distribution<br>3. Copy libs found in \lib\VC of the openssl installation to c\lib\openssl<br>
<br> Now use the vc project in c\vc\transport\Axis2\Axis2SSLChannel to compile the Secure channel dll.<br>
<br> Paste this dll where the Axis C++ client can load it (i.e %PATH%) OR specify the path to it in the axiscpp.conf under the key "Channel_ssl" (e.g Channel_ssl:c:\Axis2SSLChannel.dll)<br>
<br> Now when you run any client using a url of the form https://...... the client will use SSL to connect to the relevant secure service specified by the url. The client request must be directed at a "secure webserver" which has the relevant web service hosted.</p>
<br>
<br>
<p>
<a name="session"></a>
</p>
<div class="h4">
<h4>Session Headers</h4>
</div>
<p>The following text explains how to deploy and run the SOAP Header based sample client with Axis Java web service<br>
<br>
<strong>Deploying the Web Service</strong>
<br>
<br>
</p>
<p>c\samples\server\session\headers folder contains the sources (inside the counters folder, which is the package of these classes) needed to build the Axis java service needed to run the soap header based session client (These server side skeletons were generated from the Counter.wsdl)<br>
<br> Compile these java source files and deploy them in Axis java (visit http://ws.apache.org/axis/java/index.html on how to achieve this)<br>
<br> Put the following element in the section in the server-config.wsdd to enable SOAP header based session handling for Axis Java<br>
<br>
<strong>&lt;handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/&gt;</strong>
<br>
<br> The following should be put in the server-config.wsdd of Axis java for this service to behave as having session scope<br>
<br> &lt;service name="CounterService" provider="java:RPC"&gt;<br>&lt;parameter name="scope" value="session"/&gt;<br>&lt;requestFlow&gt;<br>&lt;handler type="session"/&gt;<br> &lt;/requestFlow&gt;<br>&lt;responseFlow&gt;<br>&lt;handler type="session"/&gt;<br> &lt;/responseFlow&gt;<br> &lt;parameter name="allowedMethods" value="*"/&gt;<br> &lt;parameter name="className" value="counters.CounterSoapBindingImpl"/&gt;<br> &lt;namespace&gt;http://xml.apache.org/axis/wsdd/&lt;/namespace&gt;<br>&lt;/service&gt;<br>
<br>
</p>
<p>Since Axis c++ doesn't support multiref yet, Axis java multiref should be disabled by putting the element<br>
<br>&lt;parameter name="sendMultiRefs" value="false"/&gt;<br> under &lt;globalConfiguration&gt;<br>
<br> Start Axis java (visit http://ws.apache.org/axis/java/index.html on how to achieve this)<br>
<br> Generating the client stubs and building the client and running the client.<br>
<br>
</p>
<p>Use the vc workspace \c\vc\samples\client\session\Headers\Headers.dsw to compile the client side handler for this sample<br>
<br> Run the command java org.apache.axis.wsdl.wsdl2ws.WSDL2Ws ../Counter.wsdl -o./gen_src -lc++ -sclient from within c\samples\client\session\headers\sessionclient to generate the client stubs<br>
<br> Compile the client application using the vc workspace at<br>\c\vc\samples\client\session\Headers\Headers.dsw<br>
<br> Host the service in Axis java (Check c/samples/server/session/headers/readme.txt on how to do this).<br>
<br> Configure the client to use the provided client.wsdd from axiscpp.conf (make appropriate changes if necessary in the client.wsdd to the absolute path of the handler )<br>
<br> Run the tcpMonitor and configure it to check the conversation between the client and server<br>
<br> Run the client in the following fashion<br>
<br>sessionClient count 1 http://localhost:8080/axis/services/CounterService<br>
<br> Inspect the SOAP messages in tcpMonitor to see the values returned by the server incremented by 1 each time (as done throught the client). Counting starts at the value 97, which is set at the server side web service.<br>
</p>
<br>
<p>
<a name="IPV6"></a>
</p>
<div class="h4">
<h4>IPV6</h4>
</div>
<p>The source is in src/transport/axis2/ipv6/</p>
<br>
<p>We need the 2 additional headers that comes with the IPv6Kit.<br>
<br>Can be downloaded from <a href="http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp">http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp</a>
<br>
<br>Extract the package and copy the tpipv6.h and wspiapi.h headers in inc folder to $AXISCPP_HOME/include.<br>
<br> That would compile the axis2ipv6 VC++ project.</p>
<div id="pdf" align="right">
<a href="winuser-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>