[prev in list] [next in list] [prev in thread] [next in thread] 

List:       webservices-general
Subject:    cvs commit: ws-site/targets/axis/cpp winuser-guide.pdf winuser-guide.html windev-guide.pdf windev-gu
From:       roshan () apache ! org
Date:       2004-05-28 10:19:02
Message-ID: 20040528101902.722.qmail () minotaur ! apache ! org
[Download RAW message or body]

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>
  
  
  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic