You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by ro...@apache.org on 2004/05/28 12:19:02 UTC

cvs commit: ws-site/targets/axis/cpp winuser-guide.pdf winuser-guide.html windev-guide.pdf windev-guide.html documentation.pdf documentation.html

roshan      2004/05/28 03:19:02

  Modified:    targets/axis/cpp winuser-guide.pdf winuser-guide.html
                        windev-guide.pdf windev-guide.html
                        documentation.pdf documentation.html
  Log:
  Changed the user guide,developers guide back to version 1.1.1. and added the latest cvs doc to the cvs
  
  Revision  Changes    Path
  1.13      +138 -259  ws-site/targets/axis/cpp/winuser-guide.pdf
  
  	<<Binary file>>
  
  
  1.14      +5 -83     ws-site/targets/axis/cpp/winuser-guide.html
  
  Index: winuser-guide.html
  ===================================================================
  RCS file: /home/cvs/ws-site/targets/axis/cpp/winuser-guide.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- winuser-guide.html	28 May 2004 05:32:30 -0000	1.13
  +++ winuser-guide.html	28 May 2004 10:19:01 -0000	1.14
  @@ -284,12 +284,8 @@
   <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>
  -<br> 
  +<br>
   <strong>Before you follow this guide, make sure that you have followed the</strong> <a href="wininstall-guide.html"><strong>Windows Installation guide</strong></a>
   </p>
   <p>
  @@ -299,11 +295,11 @@
   <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>
  +<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 apporach 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>This method assums 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>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>2) Run the WSDL2WS tool (refer the section below 'How 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>3) Create a VC workspace.<br>4) Create a 'Win32 Static Library' project in this workspace.<br>5) Add the following files to this project, from the generated 'ServerOut' folder. Calculator.cpp Calculator.h<br>6) Set the include path to the include directory of the binary distribution (These include files are in AXIS_EXTRACT/include/).<br>7) Fill the empty methods of the generated skeletons.<br>8) Generate the lib (eg: MyCalculator.lib)<br>9) Now create a 'Win32 Dynamic-Link Library' project.<br>10) Add the following files to this project, from the generated 'ServerOut' folder. CalculatorService.cpp CalculatorWrapper.cpp CalculatorWrapper.h<br>11) Set the include path to the include directory of the binary distribution.<br>12) Add the above created lib (Calculator.lib) as the input libraries of this project.<br>13) Build and create the DLL. (Calculator.dll)</p>
  +<br>This method assums 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>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>2) Run the WSDL2WS tool (refer the section below 'How to use the WSDL2WS tool on the command line') and generate the server side skeletons and wrappers. These files will be in two new folder which are generated from the tool called 'ServerOut' and 'ClientOut'.<br>3) Create a VC workspace.<br>4) Create a 'Win32 Static Library' project in this workspace.<br>5) Add the following files to this project, from the generated 'ServerOut' folder. Calculator.cpp Calculator.h<br>6) Set the include path to the include directory of the binary distribution (These include files are in AXIS_EXTRACT/include/).<br>7) Fill the empty methods of the generated skeletons.<br>8) Generate the lib (eg: MyCalculator.lib)<br>9) Now create a 'Win32 Dynamic-Link Library' project.<br>10) Add the following files to this project, from the generated 'ServerOut' folder. CalculatorService.cpp CalculatorWrapper.cpp CalculatorWrapper.h<br>11) Set the include path to the include directory of the binary distribution.<br>12) Add the above created lib (Calculator.lib) as the input libraries of this project.<br>13) Build and create the DLL. (Calculator.dll)</p>
   <p>
   <a name="wsdl2ws"></a>
   </p>
  @@ -330,7 +326,7 @@
   </div>
   <br>
   <p>Axis cpp user can use the AdminClient tool to deploy a service or manually deploy. The first section shows you how to deploy your Web Service manually, without using the AdminClient tool.<br>Say the apache installation folder is APACHE_FOLDER.<br>(For the default installation this is "C:\Program Files\Apache Group\Apache" for apache 1.3.X and "C:\Program Files\Apache Group\Apache2" for apache 2.X).<br>
  -<br>1) Copy the above Calculator.dll to the folder APACHE_FOLDER/Axis/webservices.<br>2) Go and add the following in the server.wsdd at the service level. Make sure you add these lines at the correct place, i.e at service level. (APACHE_FOLDER/Axis/conf/server.wsdd)<br>
  +<br>1) Copy the above Calculator.dll to the folder APACHE_FOLDER/Axis/webservices.<br>2) Go and add the following in the server.wsdd at the service level. Make sure you add these line 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>
  @@ -355,7 +351,7 @@
   </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>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>AxisServer.lib<br>AxisTransport.lib<br>AxisXMLParser.lib<br>6) Create a file with the main method which looks similar to the following and add this file to this project.<br>
  +<br>AXIS_EXTRACT/lib/axis/<br>Axisclient.lib<br>AxisServer.lib<br>6) Create a file with the main method which looks similar to the following and add this file to this project.<br>
   </p>
   <pre>#include "Calculator.h"
   int main()
  @@ -377,82 +373,8 @@
   <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>AxisTransport.dll should be placed in the path that's specified by axiscpp.conf (AXIS_FOLDER/axiscpp.conf).Or with the client.exe.</p>
  -<p>AxisXMLParser.dll should be placed in the path that's specified by axiscpp.conf.Or with the client.exe.</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 in 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>AXISLOGPATH: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 and thats it.</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 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>
   <div id="pdf" align="right">
   <a href="winuser-guide.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" class="skin"><br>
             PDF</a>
  
  
  
  1.8       +297 -668  ws-site/targets/axis/cpp/windev-guide.pdf
  
  	<<Binary file>>
  
  
  1.9       +29 -52    ws-site/targets/axis/cpp/windev-guide.html
  
  Index: windev-guide.html
  ===================================================================
  RCS file: /home/cvs/ws-site/targets/axis/cpp/windev-guide.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- windev-guide.html	27 May 2004 10:22:46 -0000	1.8
  +++ windev-guide.html	28 May 2004 10:19:01 -0000	1.9
  @@ -300,9 +300,7 @@
   <br> 
   <a href="#runclient">Coding and Running the client</a>
   <br>
  -<a href="#transport">Creating and Building your own transport layer</a>
  -<br>
  -<a href="#parser">Creating and Building your own parser</a>
  +<a href="#usingxerces">Building Axis C++ with the Xerces Parser</a>
   </p>
   <p>
   <a name="buildaxis"></a>
  @@ -349,7 +347,7 @@
   <a name="installapacheexpat"></a>
   </p>
   <div class="h4">
  -<h4>Installing Apache and Expat</h4>
  +<h4>Installing Apache and EXpat</h4>
   </div>
   <br>
   <p>
  @@ -395,21 +393,6 @@
   <br>(From here onwards we will refer to these modules as APACHE_MODULE. Replace it with the correct module for the Apache server version that you have installed)<br>
   <br>&nbsp;</p>
   <p>
  -<strong>Axis Transport Library</strong>
  -</p>
  -<p>In VC++ distribution workspace build AxisTransport project.Then AxisTransport.dll will be built.</p>
  -<p>
  -<strong>Xerces Parser Library</strong>
  -</p>
  -<p>In VC++ distribution workspace build AxisXMLParserXerces project. Then AxisXMLParserXerces.dll will be built.</p>
  -<p>
  -<strong>Expat Parser Library</strong>
  -</p>
  -<p>In VC++ distribution workspace build AxisXMLParserExpat project. Then AxisXMLParserExpat.dll will be built</p>
  -<p>
  -<strong>Building AxisTransport.dll and AxisXMLParser.dll</strong>
  -<br>Build the AxisTransport and AxisXMLParser projects,Which will build the AxisTransport.dll and AxisXMLParser.dll and also AxisTransport.lib and AxisXMLParser.lib in [CHECKOUT_HOME]\c\bin.</p>
  -<p>
   <strong>Building the AxisServer and AxisClient dlls</strong>
   </p>
   <p>Similarly as you built the Apache modules, build the AxisServer and AxisClient projects, Which will build the AxisServer.dll and AxisClient.dll and also AxisServer.lib and AxisClient.lib in [CHECKOUT_HOME]\c\bin.</p>
  @@ -422,22 +405,17 @@
   <p>1) Create a directory structure called "Axis" inside [APACHE_HOME] as follows.<br>(Instead, you can copy the folder [CHECKOUT_HOME]\c\deploy [APACHE_HOME] and rename it to "Axis" and you will find some of the files that you are asked to create in this guide, already existing in that folder)<br>
   <br>Axis<br>|__ libs ( Copy [EXPAT_EXTRACT]\Libs\libexpat.dll and paste it inside)<br>|__ logs (log files are located here)<br>|__ conf (server.wsdd file is located here)<br>|__ webservices (The place to put webservice dlls)<br>|__ wsdls (The directory for the wsdl files of the deployed web services)<br>
   <br>2)Set an environment variable named AXIS_HOME and give [APACHE_HOME]\Axis as the value.<br>
  -<br>i)You will find AxisServer.dll and APACHE_MODULE in [CHECKOUT_HOME]\c\bin directory.<br>ii)Copy APACHE_MODULE to [APACHE_HOME]\modules directory of your apache installation.<br>iii)Copy AxisServer.dll to any location specified by your PATH environment variable<br>iv)Copy AxisTransport.dll to any location specified by your PATH environment variable<br>v)Copy AxisXMLParser.dll to any location specified by your PATH environment variable</p>
  +<br>i)You will find AxisServer.dll and APACHE_MODULE in [CHECKOUT_HOME]\c\bin directory.<br>ii)Copy APACHE_MODULE to [APACHE_HOME]\modules directory of your apache installation.<br>iii)Copy AxisServer.dll to any location specified by your PATH environment variable</p>
   <p>
  -<strong>NOTE:</strong>Usually it is a best practice to copy AxisServer.dll,AxisTransport.dll and AxisXMLParser.dll to [AXIS_HOME]\libs\ directory and add that directory to your PATH environment variable.<br>
  +<strong>NOTE:</strong>Usually it is a best practice to copy AxisServer.dll to [AXIS_HOME]\libs\ directory and add that directory to your PATH environment variable.<br>
   <br>2) Set the "PATH" environment variable to the following directories.<br>[APACHE_HOME]<br>[APACHE_HOME]\Axis\libs<br>
   <br> 3) Change the apache configuration file [APACHE_HOME]\conf\httpd.conf to include the following lines at the bottom.<br>
   <br>LoadModule axis_module modules/APACHE_MODULE<br>&lt;Location /axis&gt;<br>SetHandler axis<br>&lt;/Location&gt;<br>
   <br>4)create a file in [APACHE_HOME]\Axis named "axiscpp.conf" which should contain the following lines.<br>
  -<br>AXISLOGPATH:XXXX<br>WSDDFILEPATH:YYYY<br>AXISTRANSPORT_HTTP:ZZZZ<br>AXISXMLPARSER:WWWW<br>
  -<br>Where XXXX will be the path to a file named AxisLog (The log file)and YYYY will be the path to the server.wsdd file.ZZZZ will be the path to AxisTransport.dll if it's a HTTP(if the selected transport is SMTP then should give that path.WWWW will be the path to AxisXMLParser.dll<br>
  -<br>i.e.<br>AXISLOGPATH:[APACHE_HOME]\Axis\logs\AxisLog.log<br>WSDDFILEPATH:[APACHE_HOME]\Axis\conf\server.wsdd<br>AXISTRANSPORT_HTTP:[APACHE_HOME]\Axis\libs\AxisTransport.dll<br>AXISXMLPARSER:[APACHE_HOME]\Axis\libs\AxisXMLParser.dll<br>
  -</p>
  -<p>
  -<strong>Note:If the AxisTransport.dll and AxisXMLParser.dll paths are not given in axiscpp.conf then the hardcoded values will be used.For that set the path of these 2 in the PATH environment variable or copy them to the same location as the Client.exe.</strong>
  -</p>
  -<br>
  -<p>6)Select start-&gt;programs-&gt;Apache HTTP server-&gt;Control Apache Server-&gt;stop to stop the apache server<br>(This is because apache will be started automatically by the installation program)<br>
  +<br>AXISLOGPATH:XXXX<br>WSDDFILEPATH:YYYY<br>
  +<br>Where XXXX will be the path to a file named AxisLog (The log file)and YYYY will be the path to the server.wsdd file.<br>
  +<br>i.e.<br>AXISLOGPATH: [APACHE_HOME]\Axis\logs\AxisLog.log<br>WSDDFILEPATH: [APACHE_HOME]\Axis\conf\server.wsdd<br>
  +<br>6)Select start-&gt;programs-&gt;Apache HTTP server-&gt;Control Apache Server-&gt;stop to stop the apache server<br>(This is because apache will be started automatically by the installation program)<br>
   <br>Open up a DOS terminal and give the command "apache -k start" to start apache (If Apache 2.0 server does not seem to respond when started this way, try "apache -X").<br>open a browser and verify whether you can browse http://localhost/ (or give the machines ip as http://xxx.xxx.xxx.xxx/). If apache is running you will see the Apache start page in the browser.&nbsp;</p>
   <p>
   <a name="deploywebservice"></a>
  @@ -556,7 +534,7 @@
   </p>
   <p>7) In the dialog that appears select &ldquo;An empty project&rdquo; click &ldquo;Finish&rdquo; and then &ldquo;OK&rdquo;.<br>8) Right click on the project that you created (i.e. ws1) and click &ldquo;Add Files to Project&hellip;&rdquo; on the menu that appears.Then Add the generated .cpp and .h files from the [SKELSTUB_HOME]\ClientOut to the project and click &ldquo;OK&rdquo;.<br>9) Right click on the project (i.e. calclient) again and click on &ldquo;Settings&hellip;&rdquo; on the menu that appears. Click the &ldquo;C/C++&rdquo; tab and select &ldquo;Preprocessor&rdquo; from the &ldquo;Category&rdquo; Drop down list.<br>In the &ldquo;Additional include directories&rdquo; give [CHECKOUT_HOME]c\include as the include path.<br>
   </p>
  -<p>10) Click the &ldquo;Link&rdquo; tab and select &ldquo;Input&rdquo; from the &ldquo;Category&rdquo; Drop down list.<br>Add AxisClient.lib to the &ldquo;Object/library modules&rdquo; and in the &ldquo;Additional library path&rdquo; give the path. AxisClient.lib can be found in [CHECKOUT_HOME]\c\bin once you build the AxisClient,AxisTransport,AxisXMLParserXerces or AxisXMLParserExpat projects of the "Distribution" VC workspace.<br>
  +<p>10) Click the &ldquo;Link&rdquo; tab and select &ldquo;Input&rdquo; from the &ldquo;Category&rdquo; Drop down list.<br>Add AxisClient.lib to the &ldquo;Object/library modules&rdquo; and in the &ldquo;Additional library path&rdquo; give the path. AxisClient.lib can be found in [CHECKOUT_HOME]\c\bin once you build the AxisClient project of the "Distribution" VC workspace.<br>
   <br>&nbsp;</p>
   <p>Now the client should be coded. Basically this will be a main method. We will write the main method in the file Calculator.cpp of the VC project "calclient". This is the stub generated by the java tool in the stub generation step.<br>
   <br>Add the following main method to Calculator.cpp<br>
  @@ -568,11 +546,7 @@
   printf("The result is : %d", result);
   }</pre>
   <br>
  -<p>It is better to have the path to your AxisXMLParser.dll and AxisTransport.dll in axiscpp.conf or have the dlls where the client exe is.</p>
  -<p>Right click on the project and click &ldquo;Build&rdquo; on the menu that appears.</p>
  -<p>When the XMLParser is running these steps occur.<br>1. Locate Parser dll.<br>2. Create Parser instance by CreateInstance() method.<br>3. Give the stream to parser by setInputStream() method.<br>4. Call next() method multiple times.<br>5. getStatus() to see if the streams are properly passed.<br>6. Destroy parser object by DestroyInstance().<br>
  -</p>
  -<p>If Visual C++ complains about missing libs go to Build-&gt;Rebuild All (Do make sure that the apache server is stopped). Now the client exe is built.<br> Start the Apache server by typing apache -k start and run the exe from Visual C++ by going to Build-&gt;Execute calclient.exe. If all went well now you should see the SOAP Request, SOAP Response and the result printed by calclient.exe.</p>
  +<p>Right click on the project and click &ldquo;Build&rdquo; on the menu that appears.<br>If Visual C++ complains about missing libs go to Build-&gt;Rebuild All (Do make sure that the apache server is stopped). Now the client exe is built.<br>Start the Apache server by typing apache -k start and run the exe from Visual C++ by going to Build-&gt;Execute calclient.exe. If all went well now you should see the SOAP Request, SOAP Response and the result printed by calclient.exe.</p>
   <p>
   <a name="providedservices"></a>
   </p>
  @@ -590,29 +564,32 @@
   <p>
   <br>1) Open the Visual C++ workspace (interoptests.dsw) at [CHECKOUT_HOME]\c\vc\samples\client\interoptests\ and do a batch build of all projects.<br>2) You need to build the AxisClient project in the "Distribution" workspace at [CHECKOUT_HOME]\c\vc\, because you need the AxisClient.lib to complile client applications and AxisClient.dll to run them.<br>3) You will find the built console applications and AxisClient.dll at [CHECKOUT_HOME]\c\bin directory. Following are the built .exe files. base.exe cbase.exe cgroupB.exe doclitbase.exe doclitgroupB.exe groupB.exe<br>4) In order to run these samples you should have AxisClient.dll in the PATH environment variable or in the same directory where the .exe is.</p>
   <p>
  -<a name="transport"></a>
  +<a name="usingxerces"></a>
   </p>
   <div class="h4">
  -<h4>Creating and Building your own transport layer</h4>
  +<h4>BUILDING AXIS C++ WITH THE XERCES PARSER</h4>
   </div>
  -<img alt="" src="images/c/parserd/transport.jpg"><p>When creating your own transport layer refer SoapTransport.h header file for API.To see an example implementation refer AxisTransport.h and AxisTransport.cpp</p>
  -<p>Implement SoapTransport.h interface according to rules described in the header file.<br>Transport layer is built separately from Axis. Then Axis loads transport dynamic library through following export functions which you also have to implement.</p>
  -<p>CreateInstance (SoapTransport *pOut)- Used by Axis to create an instance of your transport class<br> DestroyInstance (SoapTransport *pIn) - Used by Axis to destroy the created transport class instance</p>
  -<p>Compile your transport code and build a dynamic library. Add the name of your transport library to axis configuration file (axiscpp.conf) so that Axis can find your library at runtime.</p>
   <p>
  -<a name="parser"></a>
  +<strong>Xerces-C</strong>
   </p>
  -<div class="h4">
  -<h4>Creating and Building your own parser</h4>
  -</div>
  -<img alt="" src="images/c/parserd/parser.jpg"><p>
  -<strong>Note:Implement XMLParser.h interface according to rules described there.</strong>
  +<p>A developer can use xerces-C parser as an alternative parser for the Expat. Once you have got Axis c++ built and deployed with EXpat using the above instructions, by following the instructions given below, you will be able to build and deploy Axis c++ with the Xerces parser.</p>
  +<br>
  +<br>
  +<p>
  +<strong>How to use xerces as the parser for Axis C++</strong>
  +</p>
  +<p>In windows using Visual C++ 6.0 open the workspace "distribution" from vc++ at [CHECKOUT_HOME]\c\vc\</p>
  +<p>1)Remove the files SoapParserExpat.cpp and WSDDDocumentExpat.cpp from the "AxisServer" project and the "AxisClient" project.</p>
  +<p>2)Add the files "SoapBinInputStream.cpp", "SoapInputSource.cpp", "SoapParserXerces.cpp", "XercesHandler.cpp" (which will be located in [CHECKOUT_HOME]\c\src\soap) and "WSDDDocumentXerces.cpp" (which will be located in [CHECKOUT_HOME]\c\src\wsdd) to the "AxisServer" project and the "AxisClient" project.</p>
  +<p>3)change the compiler directive "USE_EXPAT_PARSER" to "USE_XERCES_PARSER" (This setting is in "project-&gt;settings-&gt;C/C++-&gt;prepocessor-&gt;Preprocessor Definitions") in all the projects that this directive is used.</p>
  +<p>4)Add the Xerces header files from xerces binary distribution to [CHECKOUT_HOME]\c\include\xercesc folder</p>
  +<p>5)Add the required Xerces libs (xerces-c_2.lib for release builds, xerces-c_2D.lib for debug builds) from the Xerces binary distribution to [CHECKOUT_HOME]\c\lib\xerces-c folder and give either xerces-c_2.lib or xerces-c_2D.lib as appropriate in "project-&gt;settings-&gt;link-&gt;input-&gt;object/library modules" and give the path to those libs in "project-&gt;settings-&gt;link-&gt;additional library path"</p>
  +<p>6)Remove libexpat.lib from the settings of the projects.</p>
  +<p>If you are using any other vc workspaces (e.g AxisDevelopment) do the same modifications to the projects of those workspaces.</p>
  +<p>Now you can build the source. Once the source is built the dlls AxisServer.dll, AxisClient.dll, mod_axis.dll or mod_axis2.dll will be generated in [CHECKOUT_HOME]\c\bin.<br>You will need to put the xerces dlls somewhere pointed to by the PATH environment variable (xerces-c_2_2_0.dll for release builds, xerces-c_2_2_0D.dll for debug builds) to run the server and the client. (The recommended way of achieving this is to put the Xerces dlls in to [CHECKOUT_HOME]\Axis\libs to which you should have set the PATH environment variable already).<br>
   <br>
  +<br>NOTE: If you copy xerces dll files to [APACHE_HOME]\Axis\libs from a version other than the one you used to build the Axis source with, you may have trouble starting up the Apache web server.<br>
   </p>
  -<p>When creating your own parser refer XMLParser.h header file for API. To see an example implementation refer SoapParserExpat.h,SoapParserExpat.cpp, SoapParserXerces.h and SoapParserXerces.cpp.</p>
  -<p>Axis loads the parser dynamic library through following export functions which you also have to implement.</p>
  -<p>CreateInstance() - Used by Axis to create an instance of your parser class<br> DestroyInstance() - Used by Axis to destroy the created parser class instance</p>
  -<p>Compile your parser code and build a dynamic library. Add the name of your parser library to Axis configuration file (axiscpp.conf) so that Axis can find your library at runtime</p>
   <div id="pdf" align="right">
   <a href="windev-guide.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" class="skin"><br>
             PDF</a>
  
  
  
  1.4       +37 -37    ws-site/targets/axis/cpp/documentation.pdf
  
  	<<Binary file>>
  
  
  1.7       +6 -1      ws-site/targets/axis/cpp/documentation.html
  
  Index: documentation.html
  ===================================================================
  RCS file: /home/cvs/ws-site/targets/axis/cpp/documentation.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- documentation.html	16 Apr 2004 16:29:50 -0000	1.6
  +++ documentation.html	28 May 2004 10:19:01 -0000	1.7
  @@ -168,7 +168,7 @@
   <span class="menuLabel">Axis (C++)</span>
     
   <div class="menuItem">
  -<a href="../cpp/index.html">Axis C++ 1.1 released!</a>
  +<a href="../cpp/index.html">Latest Axis C++ Release!</a>
   </div>
     
   <div class="menuItem">
  @@ -180,6 +180,10 @@
   </div>
     
   <div class="menuItem">
  +<a href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisCPPProjectPages">Wiki Pages</a>
  +</div>
  +  
  +<div class="menuItem">
   <a href="../cpp/who.html">Who we are</a>
   </div>
     
  @@ -266,6 +270,7 @@
   <h3>Axis c++ Documentation</h3>
   </div>
   <br>
  +<p>For the latest documentation refer the documentation in the CVS repository</p>
   <div class="h4">
   <h4>Linux Documentation</h4>
   </div>