You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2003/07/25 15:24:12 UTC
cvs commit: xml-axis/c/docs user-guide.html
damitha 2003/07/25 06:24:12
Modified: c/docs user-guide.html
Log:
Revision Changes Path
1.2 +406 -269 xml-axis/c/docs/user-guide.html
Index: user-guide.html
===================================================================
RCS file: /home/cvs/xml-axis/c/docs/user-guide.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- user-guide.html 23 Jun 2003 13:38:41 -0000 1.1
+++ user-guide.html 25 Jul 2003 13:24:12 -0000 1.2
@@ -1,274 +1,411 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Axis User</title>
-<style>
-<!--
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
+ <TITLE>Axis User</TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 1.0.1 (Linux)">
+ <META NAME="CREATED" CONTENT="20030725;12341600">
+ <META NAME="CHANGED" CONTENT="20030725;16060000">
+ <META NAME="ProgId" CONTENT="FrontPage.Editor.Document">
+ <META HTTP-EQUIV="Content-Language" CONTENT="en-us">
+ <STYLE>
+ <!--
+ TD P { margin-left: 0.98cm; color: #000000; font-family: "Verdana", "Arial", "Helvetica", sans-serif }
H1 { color: #000000 }
- H3 { color: #000000 }
P { margin-left: 0.98cm; color: #000000; font-family: "Verdana", "Arial", "Helvetica", sans-serif }
+ H3 { color: #000000 }
H2 { color: #000000; text-decoration: underline }
H4 { margin-left: 0.98cm; color: #000000 }
PRE { margin-left: 0.98cm; color: #000000 }
- H5 { margin-left: 0.98cm; color: #000000 }
- P.example { font-family: "Verdana", "Arial", "Helvetica", sans-serif }
- TD P { margin-left: 0.98cm; color: #000000; font-family: "Verdana", "Arial", "Helvetica", sans-serif }
--->
-</style>
-</head>
-
-<body>
-
-<h1 ALIGN="CENTER">
-<img SRC="images/axis.jpg" NAME="Graphic1" ALIGN="bottom" WIDTH="176" HEIGHT="96" BORDER="0"></h1>
-<h1>Axis C++ User's Guide</h1>
-<h3>Table of Contents</h3>
-<ul>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#Introduction">Introduction</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#ConsumingServices">Consuming Web
- Services with Axis</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#PublishingServices">Publishing Web
- Services with Axis</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#DataMapping">XML <-> C++ Data Mapping
- in Axis</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#WSDL">Using WSDL with Axis</a>
- <ul>
- <li>
- <p STYLE="margin-bottom: 0cm"> <a HREF="#WSDL: Obtaining WSDL for deployed services">?WSDL:
- Obtaining WSDL for deployed services</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"> <a HREF="#WSDL2Java: Building stubs, skeletons, and data">WSDL2C++:
- Building stubs, skeletons, and data</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"> <a href="#Java2WSDL: Building WSDL from Java">C++2WSDL:
- Building WSDL from C++</a> </li>
- </ul>
- </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#published interfaces">Published
- Interfaces</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#newbie">Newbie Tips: Finding Your Way
- Around</a> </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#tcpmon">Appendix : Using TCPMon</a>
- </li>
- <li>
- <p STYLE="margin-bottom: 0cm"><a HREF="#soapmon">Appendix : Using SOAP Monitor</a>
- </li>
- <li><a HREF="#Glossary">Glossary</a> </li>
-</ul>
-<h2><a NAME="Introduction"></a>Introduction</h2>
-<p>Welcome to Axis C++, a c++ implementation of SOAP ! </p>
-<h3>What is SOAP?</h3>
-<p>SOAP is an XML<i>-</i>based communication protocol and encoding format for
-inter-application communication. Originally conceived by Microsoft and Userland
-software, it has evolved through several generations and the current spec,
-<a HREF="http://w3.org/TR/soap">SOAP 1.1</a>, is fast growing in popularity and
-usage. The W3C's <a HREF="http://www.w3.org/2000/xp/Group/">XML Protocol working
-group</a> is in the process of turning SOAP into a true open standard, and as of
-this writing has released a working draft of SOAP 1.2, which cleans up some of
-the more confusing areas of the 1.1 spec. </p>
-<p>SOAP is widely viewed as the backbone to a new generation of cross-platform
-cross-language distributed computing applications, termed Web Services. </p>
-<h3>What is Axis c++?</h3>
-<p>Axis is essentially a <i>SOAP engine</i>. The more complete version of axis
-is written in java.This version is written in c++ and will continue to be
-developed. </p>
-<p>Axis c++ includes</p>
-<ul>
- <li>
- <p STYLE="margin-bottom: 0cm">an apache module that can be plugged in to the
- apache webserver on linux,</li>
- <li>
- <p STYLE="margin-bottom: 0cm">A set of sample web service classes and their
- handwritten wrapper classes.</li>
-</ul>
-<p>We hope you enjoy using Axis c++. Please note that this is an open-source effort
-- if you feel the code could use some new features or fixes, please get involved
-and lend a hand! The Axis developer community welcomes your participation. </p>
-<h4><b>Let us know what you think!</b></h4>
-<p>Please send feedback about the package to "<a HREF="mailto:axis-user@xml.apache.org">axis-user@xml.apache.org</a>". </p>
-<h3>What's in Axis c++ at this moment?</h3>
-<p>Axis c++ includes the following features: </p>
-<ul>
- <li>
- <p STYLE="margin-bottom: 0cm">Partial SOAP 1.1 compliant engine</li>
- <li>
- <p STYLE="margin-bottom: 0cm">Support for all basic types</li>
- <li>
- <p STYLE="margin-bottom: 0cm">Automatic serialization/deserialization of Java
- Beans, including customizable mapping of fields to XML elements/attributes
- </li>
- <li>
- <p STYLE="margin-bottom: 0cm">Provider for RPC and based SOAP
- services </li>
-</ul>
-<h2><a NAME="ConsumingServices"></a>Consuming Web Services with Axis C++</h2>
-<h2><a NAME="PublishingServices"></a>Publishing Web Services with Axis C++</h2>
-<p>This chapter explains how to deploy the sample web services included with
-Axis C++.</p>
-<p>Hopefully by now you have installed Axis C++.<br>
-<br>
-If you haven't already done so download the binary version of Axis C++ and
-follow the instructions in the integration-guide to install it.<br>
- </p>
-<p>From here onwards the folder in which Axis C++ is installed by being
-extracted from the Axis C++ installation package will be referred to as <br>
-<axiscpp_home>.<br>
-<br>
-sample webservice modules are included in <axiscpp_home>/src/server/samples/<br>
-<br>
-in this folder you will find two subfolders called webservice and
-webservicewrapper and <br>
-service.wsdd file written by the service provider for his service.</p>
-<p>In <axiscpp_home>/src/server/samples/ there are two subfolders called
-webservice and webservicewrapper.</p>
-<p>In the webservice folder, the header files and cpp files written in c++, for
-each of the webservice can be found. In the webservicewrapper folder the
-corresponding the wrapper classes for each of the webservices can be found. The
-wrapper classes are supposed to be generated by a tool which, is not implemented
-yet. When the wrapper generator is implemented you should be able to generate
-the files in webservicewrapper, using the header files for any given webservice
-provider class.</p>
-<p>Now change directory to the webservice/<sample name> folder and type the
-following</p>
-<p>make clean<br>
-make<br>
-<br>
-Now go into the webservicewrapper<sample name> folder and type the following </p>
-<p>make clean<br>
-make<br>
-<br>
-You will find the corresponding web service module generated in <axiscpp_home>/axis/webservice
-folder.<br>
- </p>
-<p>Restart apache web server and test the web service using the java webservice
-client. For infromation on how to use the java web service client refer to the
-Axis java user guide which can be found at http://ws.apache.org/axis/.<br>
-<br>
-If you want to test handlers go into the <axiscpp_home>/src/servcer/handlers
-folder where example handlers are included. Change to a particular example
-directory of your choice and type the following</p>
-<p>make clean<br>
-make</p>
-<p>You will find the corresponding handler generated in <axiscpp_home>axis/handlers
-directory.<br>
-Restart the apache web server and test your handler using the web service client
-in Axis java.For infromation on how to use the java web service client refer to
-the Axis java user guide which can be found at http://ws.apache.org/axis/.<br>
-<br>
-Happy Axiscpp!!!<br>
-<br>
-<br>
- </p>
-<p> </p>
-<h2><a NAME="DataMapping"></a>XML <-> C++ Data Mapping in Axis C++</h2>
-<h3>How your C++ types map to SOAP/XML types</h3>
-<h4>Standard mappings from WSDL to C++</h4>
-<table CELLPADDING="2" CELLSPACING="2">
- <tr>
- <td>xsd:base64Binary </td>
- <td>Not implemented yet</td>
- </tr>
- <tr>
- <td>xsd:boolean </td>
- <td>int</td>
- </tr>
- <tr>
- <td>xsd:byte </td>
- <td>unsigned char</td>
- </tr>
- <tr>
- <td>xsd:dateTime </td>
- <td>Not implemented yet</td>
- </tr>
- <tr>
- <td>xsd:decimal </td>
- <td>Not implemented yet</td>
- </tr>
- <tr>
- <td>xsd:double </td>
- <td><tt>double</tt></td>
- </tr>
- <tr>
- <td>xsd:float </td>
- <td><tt>float</tt></td>
- </tr>
- <tr>
- <td>xsd:hexBinary </td>
- <td>Not implemented yet</td>
- </tr>
- <tr>
- <td>xsd:int</td>
- <td><tt>int</tt></td>
- </tr>
- <tr>
- <td>xsd:integer</td>
- <td>int</td>
- </tr>
- <tr>
- <td>xsd:long </td>
- <td><tt>long</tt></td>
- </tr>
- <tr>
- <td>xsd:QName </td>
- <td>Not implemented yet</td>
- </tr>
- <tr>
- <td>xsd:short </td>
- <td><tt>short</tt></td>
- </tr>
- <tr>
- <td>xsd:string</td>
- <td>stl::string</td>
- </tr>
-</table>
-<h2><a NAME="WSDL"></a>Using WSDL with Axis</h2>
-<h2><a NAME="published interfaces"></a>Published Axis Interfaces</h2>
-<h2><a NAME="newbie"></a>Newbie Tips: Finding Your Way Around</h2>
-<h2><a NAME="tcpmon"></a>Appendix : Using the Axis TCP Monitor (tcpmon)</h2>
-<p>This section describe a java tool that is included with Axis java that can be
-used to view what goes on the wire when a soap transaction is taking place.
-Please visit <a href="http://ws.apache.org/axis/">http://ws.apache.org/axis/</a>
-and get Axis java, to obtain tcpmon.</p>
-<p>The "tcpmon" utility can be found in the org.apache.axis.utils
-package. To run it from the command line: </p>
-<pre STYLE="color: #000000; margin-left: 0.98cm; margin-bottom: 0.5cm">% java org.apache.axis.utils.tcpmon [listenPort targetHost targetPort]</pre>
-<p>Without any of the optional arguments, you will get a gui which looks like
-this: </p>
-<p ALIGN="CENTER">
-<img SRC="images/tcpmon1.jpg" NAME="Graphic2" ALIGN="bottom" WIDTH="599" HEIGHT="599" BORDER="0"></p>
-<p>To use the program, you should select a local port which tcpmon will monitor
-for incoming connections, a target host where it will forward such connections,
-and the port number on the target machine which should be "tunneled" to. Then
-click "add". You should then notice another tab appearing in the window for your
-new tunneled connection. Looking at that panel, you'll see something like this:
-</p>
-<p ALIGN="CENTER">
-<img SRC="images/tcpmon2.jpg" NAME="Graphic3" ALIGN="bottom" WIDTH="599" HEIGHT="600" BORDER="0"></p>
-<p>Now each time a SOAP connection is made to the local port, you will see the
-request appear in the "Request" panel, and the response from the server in the
-"Response" panel. Tcpmon keeps a log of all request/response pairs, and allows
-you to view any particular pair by selecting an entry in the top panel. You may
-also remove selected entries, or all of them, or choose to save to a file for
-later viewing. </p>
-<p>The "resend" button will resend the request you are currently viewing, and
-record a new response. This is particularly handy in that you can edit the XML
-in the request window before resending - so you can use this as a great tool for
-testing the effects of different XML on SOAP servers. Note that you may need to
-change the content-length HTTP header value before resending an edited request.
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-US">
+<H1 ALIGN=CENTER><IMG SRC="images/axis.jpg" NAME="Graphic1" ALIGN=BOTTOM WIDTH=176 HEIGHT=96 BORDER=0></H1>
+<H1>Axis C++ User's Guide</H1>
+<H3>Table of Contents</H3>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#Introduction">Introduction</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#ConsumingServices">Consuming
+ Web Services with Axis</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#PublishingServices">Publishing
+ Web Services with Axis</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#DataMapping">XML <->
+ C++ Data Mapping in Axis</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#WSDL">Using WSDL with
+ Axis</A>
+ </P>
+ <UL>
+ <LI><P STYLE="margin-bottom: 0cm"> <A HREF="#WSDL: Obtaining WSDL for deployed services">?WSDL:
+ Obtaining WSDL for deployed services</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"> <A HREF="#WSDL2Java: Building stubs, skeletons, and data">WSDL2C++:
+ Building stubs, skeletons, and data</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"> <A HREF="#Java2WSDL: Building WSDL from Java">C++2WSDL:
+ Building WSDL from C++</A>
+ </P>
+ </UL>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#published interfaces">Published
+ Interfaces</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#newbie">Newbie Tips:
+ Finding Your Way Around</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#tcpmon">Appendix : Using
+ TCPMon</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="#soapmon">Appendix :
+ Using SOAP Monitor</A>
+ </P>
+ <LI><P><A HREF="#Glossary">Glossary</A>
+ </P>
+</UL>
+<H2><A NAME="Introduction"></A>Introduction</H2>
+<P>Welcome to Axis C++, a c++ implementation of SOAP !
+</P>
+<H3>What is SOAP?</H3>
+<P>SOAP is an XML<I>-</I>based communication protocol and encoding
+format for inter-application communication. Originally conceived by
+Microsoft and Userland software, it has evolved through several
+generations and the current spec, <A HREF="http://w3.org/TR/soap">SOAP
+1.1</A>, is fast growing in popularity and usage. The W3C's <A HREF="http://www.w3.org/2000/xp/Group/">XML
+Protocol working group</A> is in the process of turning SOAP into a
+true open standard, and as of this writing has released a working
+draft of SOAP 1.2, which cleans up some of the more confusing areas
+of the 1.1 spec.
+</P>
+<P>SOAP is widely viewed as the backbone to a new generation of
+cross-platform cross-language distributed computing applications,
+termed Web Services.
+</P>
+<H3>What is Axis c++?</H3>
+<P>Axis is essentially a <I>SOAP engine</I>. The more complete
+version of axis is written in java.This version is written in c++ and
+will continue to be developed.
+</P>
+<P>Axis c++ includes</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm">an apache module that can be
+ plugged in to the apache webserver on linux,
+ </P>
+ <LI><P>A set of sample web service classes and their handwritten
+ wrapper classes.
+ </P>
+</UL>
+<P>We hope you enjoy using Axis c++. Please note that this is an
+open-source effort - if you feel the code could use some new features
+or fixes, please get involved and lend a hand! The Axis developer
+community welcomes your participation.
+</P>
+<H4><B>Let us know what you think!</B></H4>
+<P>Please send feedback about the package to
+"<A HREF="mailto:axis-user@xml.apache.org">axis-user@xml.apache.org</A>".
+</P>
+<H3>What's in Axis c++ at this moment?</H3>
+<P>Axis c++ includes the following features:
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm">Partial SOAP 1.1 compliant engine
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm">Support for all basic types
+ </P>
+ <LI><P STYLE="margin-bottom: 0cm">Automatic
+ serialization/deserialization of Java Beans, including customizable
+ mapping of fields to XML elements/attributes
+ </P>
+ <LI><P>Provider for RPC and based SOAP services
+ </P>
+</UL>
+<H2><A NAME="ConsumingServices"></A>Consuming Web Services with Axis
+C++</H2>
+<H2><A NAME="PublishingServices"></A>Publishing Web Services with
+Axis C++</H2>
+<P>This chapter explains how to deploy the sample web services
+included with Axis C++.</P>
+<P>Hopefully by now you have installed Axis C++.<BR><BR>If you
+haven't already done so download the binary version of Axis C++ and
+follow the instructions in the integration-guide to install it.<BR> </P>
+<P>From here onwards the folder in which Axis C++ is installed by
+being extracted from the Axis C++ installation package will be
+referred to as <BR><axiscpp_home>.<BR><BR>sample webservice
+modules are included in <axiscpp_home>/src/server/samples/<BR><BR>in
+this folder you will find two subfolders called webservice and
+webservicewrapper and <BR>service.wsdd file written by the service
+provider for his service.</P>
+<P>In the webservice folder, the header files and cpp files written
+in c++, for each of the webservice can be found. In the
+webservicewrapper folder the corresponding the wrapper classes for
+each of the webservices can be found. The wrapper classes are
+supposed to be generated by a tool called (WCG)Wrapper Class
+Generator .
+</P>
+<P><U>Using WCG</U>
+</P>
+<P>cd to <axiscpp_home>/src/server/samples/simpleservice. I'll
+use this example to explain how to use the WCG to generate wrapper
+classes. Suppose SimpleService.cpp contains the implementation for
+the intended service. SimpeService.h is the header file for this
+implementation class. You need only this SimpleService.h to generate
+your wrapper classes. Unwrap the WCG tool downloaded, into a working
+folder of your choice. Hereafter I name this folder as <work>.</P>
+<P>Unzip wcg.zip</P>
+<P>>cd <work>/wcg</P>
+<P>>ls</P>
+<P>wcg.exe axis</P>
+<P>This will contain the tool itself(wcg.exe) and the AxisCpp include
+files. Copy the SimpeWebService.h file into the <work>/wcg
+folder.<BR>cp
+<axiscpp_home>/src/server/samples/simpleservice/SimpeWebService.h
+./</P>
+<P>Now copy your static webservice library to <work>/wcg/lib
+folder. I refer this library as myservice.lib</P>
+<P>Now run the wcg.exe with the following options.</P>
+<P>In linux</P>
+<P><work>/wcg>wcg -L../wcg/lib/ -Imyservice.lib -oService
+-I. ../wcg/SimpeWebService.h</P>
+<P>In windows</P>
+<P><work>\wcg>wcg /L../wcg/lib/ /lmyservice.lib /oService
+/I. ../wcg/SimpeWebService.h</P>
+<P> -L<path to your service lib> -l<your service name>
+option tells wcg where your service library is.</P>
+<P>-I<include file path> option let you include additional
+header files. You can have multiple include paths.</P>
+<P>-o<generated so/dll name> will specify the name you want for
+your generated so/dll.</P>
+<P>After executing this command you will find Service.so(Service.dll
+in windows) created in the current folder where you ran the wcg.exe.</P>
+<P><BR>Copy this so/dll into where apache will be serching for
+deployed services.</P>
+<P> <BR> <U>Guidelines to follow in order to use WCG tool</U></P>
+<UL>
+ <P>Web service header files should follow following guidelines in
+ order to use wrapper class generater tool. Most of the limitations
+ imposed here are due to the fact that wrapper class is still young
+ and evolving. Please feel free to report any other limitations you
+ come across when using the WCG tool to <A HREF="mailto:axis-dev@ws.apache.org?subject=[AxisC++] Reporting limitations in WCG tool">axis-dev@ws.apache.org</A></P>
+ <LI><P>axis includes should be included as from standard include
+ directories using '<' and '>'(not “.....”)</P>
+ <LI><P>All user types should derive from IAccessBean interface and
+ inside the class predefined macro ACCESSBEAN_SERIALIZABLE should be
+ declared.(See example)</P>
+ <LI><P>Basic data types shoud be passed and returned by value or by
+ reference(using &)</P>
+ <LI><P>User data types shoud be passed and returned by pointers
+ (using *).</P>
+ <LI><P>No variable qualifiers should be used such as const, static,
+ volatile etc.</P>
+ <LI><P>No function qualifiers should be used such as const, static
+ etc. except virtual.</P>
+ <LI><P>Should not use extern keyword.</P>
+ <LI><P>Defining macros is OK but using macros is not allowed.</P>
+ <LI><P>No global or static variables outside classes.</P>
+ <LI><P>Only integer default values are allowed for method
+ parameters.</P>
+ <LI><P>No initialization lists for constructors.</P>
+ <LI><P>Member variables of basic types should be value types.</P>
+ <LI><P>Member variables of user types should be pointer types. Also
+ constructors should allocate memory for these members and
+ destructors should delete them.</P>
+ <LI><P>Namespace directives are allowed but no namespace
+ declarations.
+ </P>
+ <LI><P>Scope resolution operator(::) is not allowed anywhere.</P>
+ <LI><P>No enumerations allowed.</P>
+ <LI><P>No inline functions allowed.</P>
+ <LI><P>No type defs allowed.</P>
+ <LI><P>No operator overloading allowed.</P>
+ <LI><P>Using template keyword is not allowed. But using STL is OK.</P>
+</UL>
+<P>Restart apache web server and test the web service using the java
+webservice client. For infromation on how to use the java web service
+client refer to the Axis java user guide which can be found at
+http://ws.apache.org/axis/.<BR><BR>If you want to test handlers go
+into the <axiscpp_home>/src/servcer/handlers folder where
+example handlers are included. Change to a particular example
+directory of your choice and type the following</P>
+<P>make clean<BR>make</P>
+<P>You will find the corresponding handler generated in
+<axiscpp_home>axis/handlers directory.<BR>Restart the apache
+web server and test your handler using the web service client in Axis
+java.For infromation on how to use the java web service client refer
+to the Axis java user guide which can be found at
+http://ws.apache.org/axis/.<BR><BR>Happy Axis!!!<BR><BR><BR> </P>
+<P> </P>
+<H2><A NAME="DataMapping"></A>XML <-> C++ Data Mapping in Axis
+C++</H2>
+<H3>How your C++ types map to SOAP/XML types</H3>
+<H4>Standard mappings from WSDL to C++</H4>
+<TABLE CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD>
+ <P>xsd:base64Binary
+ </P>
+ </TD>
+ <TD>
+ <P>Not implemented yet</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:boolean
+ </P>
+ </TD>
+ <TD>
+ <P>int</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:byte
+ </P>
+ </TD>
+ <TD>
+ <P>unsigned char</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:dateTime
+ </P>
+ </TD>
+ <TD>
+ <P>Not implemented yet</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:decimal
+ </P>
+ </TD>
+ <TD>
+ <P>Not implemented yet</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:double
+ </P>
+ </TD>
+ <TD>
+ <P><TT>double</TT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:float
+ </P>
+ </TD>
+ <TD>
+ <P><TT>float</TT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:hexBinary
+ </P>
+ </TD>
+ <TD>
+ <P>Not implemented yet</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:int</P>
+ </TD>
+ <TD>
+ <P><TT>int</TT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:integer</P>
+ </TD>
+ <TD>
+ <P>int</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:long
+ </P>
+ </TD>
+ <TD>
+ <P><TT>long</TT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:QName
+ </P>
+ </TD>
+ <TD>
+ <P>Not implemented yet</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:short
+ </P>
+ </TD>
+ <TD>
+ <P><TT>short</TT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>xsd:string</P>
+ </TD>
+ <TD>
+ <P>stl::string</P>
+ </TD>
+ </TR>
+</TABLE>
+<H2><A NAME="WSDL"></A>Using WSDL with Axis</H2>
+<H2><A NAME="published interfaces"></A>Published Axis Interfaces</H2>
+<H2><A NAME="newbie"></A>Newbie Tips: Finding Your Way Around</H2>
+<H2><A NAME="tcpmon"></A>Appendix : Using the Axis TCP Monitor
+(tcpmon)</H2>
+<P>This section describe a java tool that is included with Axis java
+that can be used to view what goes on the wire when a soap
+transaction is taking place. Please visit <A HREF="http://ws.apache.org/axis/">http://ws.apache.org/axis/</A>
+and get Axis java, to obtain tcpmon.</P>
+<P>The "tcpmon" utility can be found in the
+org.apache.axis.utils package. To run it from the command line:
+</P>
+<PRE STYLE="margin-left: 1.96cm; margin-bottom: 0.5cm"><FONT COLOR="#000000">% java org.apache.axis.utils.tcpmon [listenPort targetHost targetPort]</FONT></PRE><P>
+Without any of the optional arguments, you will get a gui which looks
+like this:
+</P>
+<P ALIGN=CENTER><IMG SRC="images/tcpmon1.jpg" NAME="Graphic2" ALIGN=BOTTOM WIDTH=599 HEIGHT=599 BORDER=0></P>
+<P>To use the program, you should select a local port which tcpmon
+will monitor for incoming connections, a target host where it will
+forward such connections, and the port number on the target machine
+which should be "tunneled" to. Then click "add".
+You should then notice another tab appearing in the window for your
+new tunneled connection. Looking at that panel, you'll see something
+like this:
+</P>
+<P ALIGN=CENTER><IMG SRC="images/tcpmon2.jpg" NAME="Graphic3" ALIGN=BOTTOM WIDTH=599 HEIGHT=600 BORDER=0></P>
+<P>Now each time a SOAP connection is made to the local port, you
+will see the request appear in the "Request" panel, and the
+response from the server in the "Response" panel. Tcpmon
+keeps a log of all request/response pairs, and allows you to view any
+particular pair by selecting an entry in the top panel. You may also
+remove selected entries, or all of them, or choose to save to a file
+for later viewing.
+</P>
+<P>The "resend" button will resend the request you are
+currently viewing, and record a new response. This is particularly
+handy in that you can edit the XML in the request window before
+resending - so you can use this as a great tool for testing the
+effects of different XML on SOAP servers. Note that you may need to
+change the content-length HTTP header value before resending an
+edited request.
+</P>
+</BODY>
+</HTML>
\ No newline at end of file