You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ch...@apache.org on 2007/05/25 10:09:37 UTC

svn commit: r541579 [10/18] - in /webservices/axis2/trunk/java/xdocs: ./ @axis2_version_dir@/ @axis2_version_dir@/adb/ @axis2_version_dir@/adb/images/ @axis2_version_dir@/images/ @axis2_version_dir@/images/archi-guide/ @axis2_version_dir@/images/usergu...

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients-jibx.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-creatingclients-jibx.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients-jibx.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients-jibx.html Fri May 25 01:09:03 2007
@@ -0,0 +1,481 @@
+<?xml version="1.0" encoding=""?>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta http-equiv="content-type" content="" />
+  <title>Generating a Web Service Client using Axis2 and JiBX</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all" />
+</head>
+
+<body>
+<h1 class="title">Generating a Web Service Client using Axis2 and JiBX</h1>
+
+<p>This document explains how to generate a Web service client using Axis2
+and JiBX data binding. The service has the following WSDL:</p>
+
+<p><b>Code Listing 1: The WSDL file</b></p>
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;wsdl:definitions
+   xmlns:apachesoap="http://xml.apache.org/xml-soap"
+   xmlns:impl="http://apache.org/axis2/Axis2UserGuide"
+   xmlns:intf="http://apache.org/axis2/Axis2UserGuide"
+   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+   xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+   targetNamespace="http://apache.org/axis2/Axis2UserGuide"&gt;
+
+  &lt;wsdl:types&gt;
+    &lt;schema
+       elementFormDefault="qualified"
+       targetNamespace="http://apache.org/axis2/Axis2UserGuide"
+       xmlns="http://www.w3.org/2001/XMLSchema"&gt;
+      
+      &lt;!-- ELEMENTS --&gt;
+      
+      &lt;element name="DoInOnlyRequest"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="messageString" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+      
+      &lt;element name="TwoWayOneParameterEchoRequest"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="echoString" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+      &lt;element name="TwoWayOneParameterEchoResponse"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="echoString" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+      
+      &lt;element name="NoParametersRequest"&gt;
+        &lt;complexType/&gt;
+      &lt;/element&gt;
+      &lt;element name="NoParametersResponse"&gt;
+        &lt;complexType/&gt;
+      &lt;/element&gt;
+      
+      &lt;element name="MultipleParametersAddItemRequest"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="itemId" type="xsd:int"/&gt;
+            &lt;element name="itemName" type="xsd:string"/&gt;
+            &lt;element name="price" type="xsd:float"/&gt;
+            &lt;element name="description" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+
+      &lt;element name="MultipleParametersAddItemResponse"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+          &lt;element name="itemId" type="xsd:int"/&gt;
+          &lt;element name="successfulAdd" type="xsd:boolean"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+
+    &lt;/schema&gt;
+  &lt;/wsdl:types&gt;
+
+  
+  &lt;!-- MESSAGES --&gt;
+
+  &lt;wsdl:message name="DoInOnlyRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:DoInOnlyRequest"/&gt;
+  &lt;/wsdl:message&gt;
+
+  &lt;wsdl:message name="TwoWayOneParameterEchoRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:TwoWayOneParameterEchoRequest"/&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="TwoWayOneParameterEchoResponseMessage"&gt;
+    &lt;wsdl:part name="output" element="impl:TwoWayOneParameterEchoResponse"/&gt;
+  &lt;/wsdl:message&gt;
+
+  &lt;wsdl:message name="NoParametersRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:NoParametersRequest"/&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="NoParametersResponseMessage"&gt;
+    &lt;wsdl:part name="output" element="impl:NoParametersResponse"/&gt;
+  &lt;/wsdl:message&gt;
+
+  &lt;wsdl:message name="MultipleParametersAddItemRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:MultipleParametersAddItemRequest"/&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="MultipleParametersAddItemResponseMessage"&gt;
+    &lt;wsdl:part name="output" element="impl:MultipleParametersAddItemResponse"/&gt;
+  &lt;/wsdl:message&gt;
+
+
+  &lt;!-- Port type (operations) --&gt;
+
+  &lt;wsdl:portType name="Axis2UserGuidePortType"&gt;
+
+    &lt;wsdl:operation name="DoInOnly" parameterOrder="input"&gt;
+      &lt;wsdl:input name="DoInOnlyRequestMessage"
+                  message="impl:DoInOnlyRequestMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="TwoWayOneParameterEcho" parameterOrder="input"&gt;
+      &lt;wsdl:input name="TwoWayOneParameterEchoRequestMessage"
+                  message="impl:TwoWayOneParameterEchoRequestMessage"/&gt;
+      &lt;wsdl:output name="TwoWayOneParameterEchoResponseMessage"
+                  message="impl:TwoWayOneParameterEchoResponseMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="NoParameters" parameterOrder="input"&gt;
+      &lt;wsdl:input name="NoParametersRequestMessage"
+                  message="impl:NoParametersRequestMessage"/&gt;
+      &lt;wsdl:output name="NoParametersResponseMessage"
+                   message="impl:NoParametersResponseMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="MultipleParametersAddItem" parameterOrder="input"&gt;
+      &lt;wsdl:input name="MultipleParametersAddItemRequestMessage"
+                  message="impl:MultipleParametersAddItemRequestMessage"/&gt;
+      &lt;wsdl:output name="MultipleParametersAddItemResponseMessage"
+                  message="impl:MultipleParametersAddItemResponseMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+  &lt;/wsdl:portType&gt;
+
+
+  &lt;!-- BINDING (bind operations) --&gt;
+  &lt;wsdl:binding
+     name="Axis2UserGuideSoapBinding"
+     type="impl:Axis2UserGuidePortType"&gt;
+    &lt;wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+
+    &lt;wsdl:operation name="DoInOnly"&gt;
+      &lt;wsdlsoap:operation soapAction="DoInOnly"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="TwoWayOneParameterEcho"&gt;
+      &lt;wsdlsoap:operation soapAction="TwoWayOneParameterEcho"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="NoParameters"&gt;
+      &lt;wsdlsoap:operation soapAction="NoParameters"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="MultipleParametersAddItem"&gt;
+      &lt;wsdlsoap:operation soapAction="MultipleParametersAddItem"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+    &lt;/wsdl:operation&gt;
+  &lt;/wsdl:binding&gt;
+
+
+  &lt;!-- SERVICE --&gt;
+
+  &lt;wsdl:service name="Axis2UserGuideService"&gt;
+    &lt;wsdl:port binding="impl:Axis2UserGuideSoapBinding"
+               name="Axis2UserGuide"&gt;
+      &lt;wsdlsoap:address location="http://localhost:8080/axis2/services/Axis2UserGuide"/&gt;
+    &lt;/wsdl:port&gt;
+  &lt;/wsdl:service&gt;
+&lt;/wsdl:definitions&gt;</pre>
+
+<p>Note that the document defines four operations, DoInOnly, NoParameters,
+TwoWayOneParameterEcho, and MultipleParametersAddItem. Each client will
+include methods for calling each of these operations.</p>
+
+<p>(You can get more information on WSDL at <a
+href="http://www.w3.org/2002/ws/desc/">http://www.w3.org/2002/ws/desc/</a>
+.)</p>
+<a name="jibx"></a>
+
+<h2>JiBX</h2>
+
+<p>JiBX is not part of the Apache project, so in order to use it to generate
+your clients, you will need to do some setting up to start with. To generate
+your client, execute the following steps:</p>
+
+<p><b>The short story</b>:</p>
+<ol>
+  <li>Download the latest JiBX package (tested with JiBX v1.1) from <a
+    href="http://sourceforge.net/projects/jibx/">http://sourceforge.net/projects/jibx/</a>
+    . Extract the zip file, and copy the JARs in the lib directory to the
+    AXIS2_HOME/lib directory. (Delete the stax-api.jar file; it's superseded
+    by the version that comes with Axis2.)</li>
+  <li>Download <a
+    href="http://sourceforge.net/project/showfiles.php?group_id=69358&amp;package_id=122897">xsd2jibx
+    version beta2a</a> from SourceForge. Create a directory called xsd2jibx
+    in your working directory and extract the files into it. This utility
+    does not work with the latest release (v1.1) of JiBX, so download <a
+    href="http://sourceforge.net/project/showfiles.php?group_id=69358&amp;package_id=68290">jibx-1.0RC1</a>
+    from SourceForge. Extract the files from this archive and copy the *.jar
+    files in the lib directory into the xsd2jibx/lib directory.</li>
+  <li>Create a schema based on the data structures of your WSDL file and save
+    it in your working directory.</li>
+  <li>Make sure that only the xsd2jibx jar files are in the classpath and
+    execute the following command to create the basic binding file: java -jar
+    xsd2jibx\lib\xsd2jibx.jar Axis2UserGuide.xsd</li>
+  <li>Copy the org directory to the src directory to place the generated
+    classes into the project so that the compiler will see them.</li>
+  <li>Remove the xsd2jibx-related *.jar files from your CLASSPATH and add the
+    Axis2 .jar files back into it. Execute the following command to generate
+    the stubs:
+    <pre>%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d jibx -Ebindingfile org\apache\axis2\axis2userguide\binding.xml -s</pre>
+  </li>
+  <li>Create the client file in the org/apache/axis2/axis2userguide
+  directory.</li>
+  <li>Copy the org directory and all its contents to the src directory.</li>
+  <li>Compile the first set of classes by typing:<code>ant
+  jar.client</code></li>
+  <li>Go to the build/classes directory and run the JiBX compiler:
+    <pre>java -jar C:\apps\axis2\lib\jibx-bind.jar 
+..\..\org\apache\axis2\axis2userguide\binding.xml</pre>
+  </li>
+  <li>Run Ant again to package the new auto-generated JiBX classes into the
+    client jar by typing: <code>ant jar.client</code></li>
+  <li>Add the build/lib/Axis2UserGuideService-test-client.jar file to the
+    CLASSPATH and run the client by typing:
+    <pre>java org.apache.axis2.axis2userguide.Client</pre>
+  </li>
+</ol>
+
+<p><b>The long story:</b></p>
+
+<p>To use JiBX to generate your client, you first need to use it in two
+different functions. You have to generate a binding file that maps objects to
+the XML elements, and then use JiBX to generate the stubs that your client
+will use. To generate a binding file, you'll need the xsd2jibx utility, which
+creates a binding file from an XML Schema document. Once you have the binding
+file, you can run JiBX to create the actual object. In order to do all that
+you'll need to have the appropriate versions of the JiBX software.</p>
+
+<p>Download the latest JiBX package (tested with JiBX v1.1) from <a
+href="http://sourceforge.net/projects/jibx/">http://sourceforge.net/projects/jibx/</a>.
+Extract the zip file, and copy the JARs in the lib directory to the
+AXIS2_HOME/lib directory. (Delete the stax-api.jar file; it's superseded by
+the version that comes with Axis2.) These files pertain to the main JiBX
+application.</p>
+
+<p>Download <a
+href="http://sourceforge.net/project/showfiles.php?group_id=69358&amp;package_id=122897">xsd2jibx
+version beta2a</a> from Sourceforge. Create a directory called xsd2jibx in
+your working directory and extract the files into it. Unfortunately, this
+utility does not work with the latest release of JiBX, so you will need to
+download <a
+href="http://sourceforge.net/project/showfiles.php?group_id=69358&amp;package_id=68290 ">jibx-1.0RC1</a>
+from Sourceforge. Extract the files from this archive and place the *.jar
+files in the lib directory into the xsd2jibx/lib directory. This way, you can
+use them exclusively with the xsd2jibx utility.</p>
+
+<p>You'll need an XML schema from which to generate the binding file, which
+links XML elements to the Java classes. As defined in the sample WSDL file,
+its content should be as shown in Code Listing 2.</p>
+
+<p><b>Code Listing 2: XML Schema</b></p>
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;xsd:schema
+   elementFormDefault="qualified"
+   targetNamespace="http://apache.org/axis2/Axis2UserGuide"
+   xmlns="http://www.w3.org/2001/XMLSchema"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
+  
+  &lt;!-- ELEMENTS --&gt;
+  &lt;xsd:element name="DoInOnlyRequest"&gt;
+    &lt;xsd:complexType&gt;
+      &lt;xsd:sequence&gt;
+        &lt;xsd:element name="messageString" type="xsd:string"/&gt;
+      &lt;/xsd:sequence&gt;
+    &lt;/xsd:complexType&gt;
+  &lt;/xsd:element&gt;
+  
+  &lt;xsd:element name="TwoWayOneParameterEchoRequest"&gt;
+    &lt;xsd:complexType&gt;
+      &lt;xsd:sequence&gt;
+        &lt;xsd:element name="echoString" type="xsd:string"/&gt;
+      &lt;/xsd:sequence&gt;
+    &lt;/xsd:complexType&gt;
+  &lt;/xsd:element&gt;
+  &lt;xsd:element name="TwoWayOneParameterEchoResponse"&gt;
+    &lt;xsd:complexType&gt;
+      &lt;xsd:sequence&gt;
+        &lt;xsd:element name="echoString" type="xsd:string"/&gt;
+      &lt;/xsd:sequence&gt;
+    &lt;/xsd:complexType&gt;
+  &lt;/xsd:element&gt;
+  
+  &lt;xsd:element name="NoParametersRequest"&gt;
+    &lt;xsd:complexType/&gt;
+  &lt;/xsd:element&gt;
+  &lt;xsd:element name="NoParametersResponse"&gt;
+    &lt;xsd:complexType/&gt;
+  &lt;/xsd:element&gt;
+  
+  &lt;xsd:element name="MultipleParametersAddItemRequest"&gt;
+    &lt;xsd:complexType&gt;
+      &lt;xsd:sequence&gt;
+        &lt;xsd:element name="itemId" type="xsd:int"/&gt;
+        &lt;xsd:element name="itemName" type="xsd:string"/&gt;
+        &lt;xsd:element name="price" type="xsd:float"/&gt;
+        &lt;xsd:element name="description" type="xsd:string"/&gt;
+      &lt;/xsd:sequence&gt;
+    &lt;/xsd:complexType&gt;
+  &lt;/xsd:element&gt;
+
+  &lt;xsd:element name="MultipleParametersAddItemResponse"&gt;
+    &lt;xsd:complexType&gt;
+      &lt;xsd:sequence&gt;
+        &lt;xsd:element name="itemId" type="xsd:int"/&gt;
+        &lt;xsd:element name="successfulAdd" type="xsd:boolean"/&gt;
+      &lt;/xsd:sequence&gt;
+    &lt;/xsd:complexType&gt;
+  &lt;/xsd:element&gt;
+
+&lt;/xsd:schema&gt;</pre>
+
+<p>Save the above XML schema file as Axis2UserGuide.xsd.</p>
+
+<p>In order to map this schema into a JiBX binding file, you'll need to use
+the xsd2jibx utility. Clear your CLASSPATH and add only the .jar files in the
+xsd2jibx/lib directory. Execute the following command to create the basic
+binding file:</p>
+<pre>java -jar xsd2jibx\lib\xsd2jibx.jar Axis2UserGuide.xsd</pre>
+
+<p>This operation creates the basic class files, as well as the mapping file,
+called binding.xml. You'll use this file to do the actual WSDL-to-Java
+conversion.</p>
+
+<p>Remove the xsd2jibx .jar files from your CLASSPATH and add the Axis2 .jar
+files back into it. Execute the command in Code Listing 3 to generate the
+stubs.</p>
+
+<p><b>Code Listing 3: Generating the stubs</b></p>
+<pre>%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d jibx -Ebindingfile org\apache\axis2\axis2userguide\binding.xml -s</pre>
+
+<p>Create the client file, Client.java, in the
+org/apache/axis2/axis2userguide directory. Add the following code in Code
+Listing 4.</p>
+
+<p><b>Code Listing 4: Creating Client.java</b></p>
+<pre>package org.apache.axis2.axis2userguide;
+
+public class Client{
+    public static void main(java.lang.String args[]){
+        try{
+            Axis2UserGuideServiceStub stub =
+                new Axis2UserGuideServiceStub
+              ("http://localhost:8080/axis2/services/Axis2UserGuideService");
+
+            doInOnly(stub);
+            twoWayOneParameterEcho(stub);
+            noParameters(stub);
+            multipleParameters(stub);
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    public static void doInOnly(Axis2UserGuideServiceStub stub){
+        try{
+            DoInOnlyRequest req = 
+                new DoInOnlyRequest();
+
+            req.setMessageString("fire and forget it!");
+
+            stub.DoInOnly(req);
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    public static void twoWayOneParameterEcho(Axis2UserGuideServiceStub stub){
+        try{
+            TwoWayOneParameterEchoRequest req = 
+                new TwoWayOneParameterEchoRequest();
+
+            req.setEchoString("echo! ... echo!");
+        System.out.println(stub.TwoWayOneParameterEcho(req).getEchoString());
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    public static void noParameters(Axis2UserGuideServiceStub stub){
+        try{
+            NoParametersRequest req =
+                new NoParametersRequest();
+
+            System.out.println(stub.NoParameters(req));
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    public static void multipleParameters(Axis2UserGuideServiceStub stub){
+        try{
+            MultipleParametersAddItemRequest req =
+                new MultipleParametersAddItemRequest();
+
+            req.setPrice((float)1.99);
+            req.setItemId((int)23872983);
+            req.setDescription("Must have for cooking");
+            req.setItemName("flour");
+
+            MultipleParametersAddItemResponse res =
+                stub.MultipleParametersAddItem(req);
+
+            System.out.println(res.getItemId());
+            System.out.println(res.getSuccessfulAdd());
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+}</pre>
+
+<p>Now it's time to compile the client. For the generated files to be found,
+they need to be in the source directory, so copy the org file to the src
+directory.</p>
+
+<p>Compile the first set of classes by typing: <code>ant jar.client</code></p>
+
+<p>This action compiles most of the available classes, but not everything.
+Fortunately, it does compile the classes needed by the JiBX compiler, so you
+can now generate the actual JiBX resources. Change to the build/classes
+directory and run the JiBX compiler:</p>
+<pre>java -jar C:\apps\axis2\lib\jibx-bind.jar ..\..\org\apache\axis2\axis2userguide\binding.xml</pre>
+
+<p>Now that you have the new files in place, re-run the Ant task to generate
+the client: <code>ant jar.client</code></p>
+
+<p>This action adds all the appropriate files to the
+build/lib/Axis2UserGuideService-test-client.jar file, so add that .jar file
+to your CLASSPATH and run the client by typing: java
+org.apache.axis2.axis2userguide.Client</p>
+</body>
+</html>

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients-xmlbeans.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-creatingclients-xmlbeans.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients-xmlbeans.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients-xmlbeans.html Fri May 25 01:09:03 2007
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding=""?>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta http-equiv="content-type" content="" />
+  <title>Generating a Web Service Client using Axis2 and XmlBeans</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all" />
+</head>
+
+<body>
+<h1 class="title">Generating a Web Service Client using Apache Axis2 and
+XMLBeans</h1>
+
+<p>This document explains how to generate a Web service client using Apache
+Axis2 and XMLBeans data binding. The service has the following WSDL:</p>
+
+<p><b>Code Listing 1: The WSDL file</b></p>
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;wsdl:definitions
+   xmlns:apachesoap="http://xml.apache.org/xml-soap"
+   xmlns:impl="http://apache.org/axis2/Axis2UserGuide"
+   xmlns:intf="http://apache.org/axis2/Axis2UserGuide"
+   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+   xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+   targetNamespace="http://apache.org/axis2/Axis2UserGuide"&gt;
+
+  &lt;wsdl:types&gt;
+    &lt;schema
+       elementFormDefault="qualified"
+       targetNamespace="http://apache.org/axis2/Axis2UserGuide"
+       xmlns="http://www.w3.org/2001/XMLSchema"&gt;
+      
+      &lt;!-- ELEMENTS --&gt;
+      
+      &lt;element name="DoInOnlyRequest"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="messageString" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+      
+      &lt;element name="TwoWayOneParameterEchoRequest"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="echoString" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+      &lt;element name="TwoWayOneParameterEchoResponse"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="echoString" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+      
+      &lt;element name="NoParametersRequest"&gt;
+        &lt;complexType/&gt;
+      &lt;/element&gt;
+      &lt;element name="NoParametersResponse"&gt;
+        &lt;complexType/&gt;
+      &lt;/element&gt;
+      
+      &lt;element name="MultipleParametersAddItemRequest"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+            &lt;element name="itemId" type="xsd:int"/&gt;
+            &lt;element name="itemName" type="xsd:string"/&gt;
+            &lt;element name="price" type="xsd:float"/&gt;
+            &lt;element name="description" type="xsd:string"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+
+      &lt;element name="MultipleParametersAddItemResponse"&gt;
+        &lt;complexType&gt;
+          &lt;sequence&gt;
+          &lt;element name="itemId" type="xsd:int"/&gt;
+          &lt;element name="successfulAdd" type="xsd:boolean"/&gt;
+          &lt;/sequence&gt;
+        &lt;/complexType&gt;
+      &lt;/element&gt;
+
+    &lt;/schema&gt;
+  &lt;/wsdl:types&gt;
+
+  
+  &lt;!-- MESSAGES --&gt;
+
+  &lt;wsdl:message name="DoInOnlyRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:DoInOnlyRequest"/&gt;
+  &lt;/wsdl:message&gt;
+
+  &lt;wsdl:message name="TwoWayOneParameterEchoRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:TwoWayOneParameterEchoRequest"/&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="TwoWayOneParameterEchoResponseMessage"&gt;
+    &lt;wsdl:part name="output" element="impl:TwoWayOneParameterEchoResponse"/&gt;
+  &lt;/wsdl:message&gt;
+
+  &lt;wsdl:message name="NoParametersRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:NoParametersRequest"/&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="NoParametersResponseMessage"&gt;
+    &lt;wsdl:part name="output" element="impl:NoParametersResponse"/&gt;
+  &lt;/wsdl:message&gt;
+
+  &lt;wsdl:message name="MultipleParametersAddItemRequestMessage"&gt;
+    &lt;wsdl:part name="input" element="impl:MultipleParametersAddItemRequest"/&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="MultipleParametersAddItemResponseMessage"&gt;
+    &lt;wsdl:part name="output" element="impl:MultipleParametersAddItemResponse"/&gt;
+  &lt;/wsdl:message&gt;
+
+
+  &lt;!-- Port type (operations) --&gt;
+
+  &lt;wsdl:portType name="Axis2UserGuidePortType"&gt;
+
+    &lt;wsdl:operation name="DoInOnly" parameterOrder="input"&gt;
+      &lt;wsdl:input name="DoInOnlyRequestMessage"
+                  message="impl:DoInOnlyRequestMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="TwoWayOneParameterEcho" parameterOrder="input"&gt;
+      &lt;wsdl:input name="TwoWayOneParameterEchoRequestMessage"
+                  message="impl:TwoWayOneParameterEchoRequestMessage"/&gt;
+      &lt;wsdl:output name="TwoWayOneParameterEchoResponseMessage"
+                  message="impl:TwoWayOneParameterEchoResponseMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="NoParameters" parameterOrder="input"&gt;
+      &lt;wsdl:input name="NoParametersRequestMessage"
+                  message="impl:NoParametersRequestMessage"/&gt;
+      &lt;wsdl:output name="NoParametersResponseMessage"
+                   message="impl:NoParametersResponseMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="MultipleParametersAddItem" parameterOrder="input"&gt;
+      &lt;wsdl:input name="MultipleParametersAddItemRequestMessage"
+                  message="impl:MultipleParametersAddItemRequestMessage"/&gt;
+      &lt;wsdl:output name="MultipleParametersAddItemResponseMessage"
+                  message="impl:MultipleParametersAddItemResponseMessage"/&gt;
+    &lt;/wsdl:operation&gt;
+
+  &lt;/wsdl:portType&gt;
+
+
+  &lt;!-- BINDING (bind operations) --&gt;
+  &lt;wsdl:binding
+     name="Axis2UserGuideSoapBinding"
+     type="impl:Axis2UserGuidePortType"&gt;
+    &lt;wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+
+    &lt;wsdl:operation name="DoInOnly"&gt;
+      &lt;wsdlsoap:operation soapAction="DoInOnly"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="TwoWayOneParameterEcho"&gt;
+      &lt;wsdlsoap:operation soapAction="TwoWayOneParameterEcho"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="NoParameters"&gt;
+      &lt;wsdlsoap:operation soapAction="NoParameters"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+    &lt;/wsdl:operation&gt;
+
+    &lt;wsdl:operation name="MultipleParametersAddItem"&gt;
+      &lt;wsdlsoap:operation soapAction="MultipleParametersAddItem"/&gt;
+      &lt;wsdl:input&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output&gt;
+        &lt;wsdlsoap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+    &lt;/wsdl:operation&gt;
+  &lt;/wsdl:binding&gt;
+
+
+  &lt;!-- SERVICE --&gt;
+
+  &lt;wsdl:service name="Axis2UserGuideService"&gt;
+    &lt;wsdl:port binding="impl:Axis2UserGuideSoapBinding"
+               name="Axis2UserGuide"&gt;
+      &lt;wsdlsoap:address location="http://localhost:8080/axis2/services/Axis2UserGuide"/&gt;
+    &lt;/wsdl:port&gt;
+  &lt;/wsdl:service&gt;
+&lt;/wsdl:definitions&gt;</pre>
+
+<p>Note that the document defines four operations, DoInOnly, NoParameters,
+TwoWayOneParameterEcho, and MultipleParametersAddItem. Each client will
+include methods for calling each of these operations.</p>
+
+<p>(For more information on WSDL, refer to: <a
+href="http://www.w3.org/2002/ws/desc/">http://www.w3.org/2002/ws/desc/</a>
+.)</p>
+
+<p><b>The short story:</b></p>
+<ol>
+  <li><a
+    href="http://ws.apache.org/axis2/download/1_1/download.cgi#std-bin">Download</a>
+    and unpack the Apache Axis2 Standard Distribution, if you have not done
+    so already.</li>
+  <li>Create the client classes with the following command:<br />
+
+    <pre>%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d xmlbeans -s</pre>
+  </li>
+  <li>Create the client (for example, Client.java) and save it in the
+    org/apache/axis2/axis2userguide directory.</li>
+  <li>Build the client by typing: <code>ant jar.client.</code></li>
+  <li>Make sure all the .jar files in the Axis2 lib directory are in the
+    CLASSPATH.</li>
+  <li>Assuming you have a corresponding service, run the client by adding the
+    generated Axis2UserGuideService-test-client.jar file in build/lib to the
+    CLASSPATH and type: <code>java
+    org.apache.axis2.axis2userguide.Client</code></li>
+</ol>
+
+<p><b>The long story:</b></p>
+
+<p><a
+href="http://ws.apache.org/axis2/download/1_1/download.cgi#std-bin">Download</a>
+and unpack the Apache Axis2 Standard Distribution, if you have not done so
+already. The <a
+href="http://ws.apache.org/axis2/download/1_1/download.cgi#war">WAR
+distribution</a> does not include the necessary utilities for generating
+code, such as WSDL2Java.</p>
+
+<p>The XMLBeans method of generating clients, unlike ADB, creates individual
+classes for each object it must model. For example, generating a client for
+this WSDL file created 642 files and folders. A small number of these files
+are directly related to the actual client you're creating. The rest are
+related to the processing of XML, and include data bound objects for schemas,
+encodings, and other objects needed to process messages.</p>
+
+<p>To generate the client, issue the following command in Listing 2.</p>
+
+<p><b>Code Listing 2. Generating the client</b></p>
+<pre>%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d xmlbeans -s</pre>
+
+<p>This command analyzes the WSDL file and creates the stubs in the package
+org.apache.axis2.axis2userguide. The options specify that you want the
+XMLBeans data binding method (-d), and synchronous or blocking methods (-s).
+In other words, when the client makes an In-Out call to the service, it will
+wait for a response before continuing.</p>
+
+<p>Once you run this command, you will see several new items in the
+directory. The first is the build.xml file, which contains the instructions
+for <a href="http://ant.apache.org/">Ant</a> to compile the generated
+classes. The second is the src directory, which contains all the generated
+classes. The third is the resources directory, which includes files related
+to the actual data binding process.</p>
+
+<p>Now you need a client. To create a client, create a new class and save it
+as Client.java in the org/apache/axis2/axis2userguide directory. It should
+contain the following code in Listing 3.</p>
+
+<p><b>Code Listing 3: Client.java</b></p>
+<pre>package org.apache.axis2.axis2userguide;
+
+public class Client{
+    public static void main(java.lang.String args[]){
+        try{
+            Axis2UserGuideServiceStub stub =
+                new Axis2UserGuideServiceStub
+                ("http://localhost:8080/axis2/services/Axis2UserGuideService");
+
+            doInOnly(stub);
+            twoWayOneParameterEcho(stub);
+            noParameters(stub);
+            multipleParameters(stub);
+
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    /* fire and forget */
+    public static void doInOnly(Axis2UserGuideServiceStub stub){
+        try{
+            DoInOnlyRequestDocument req =
+                DoInOnlyRequestDocument.Factory.newInstance();
+            DoInOnlyRequestDocument.DoInOnlyRequest data =
+                req.addNewDoInOnlyRequest();
+
+            data.setMessageString("fire and forget it!");
+
+            stub.DoInOnly(req);
+            System.out.println("done");
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    /* two way call/receive */
+    public static void twoWayOneParameterEcho(Axis2UserGuideServiceStub stub){
+        try{
+            TwoWayOneParameterEchoRequestDocument req =
+                TwoWayOneParameterEchoRequestDocument.Factory.newInstance();
+            TwoWayOneParameterEchoRequestDocument.TwoWayOneParameterEchoRequest data =
+                req.addNewTwoWayOneParameterEchoRequest();
+
+            data.setEchoString("echo! ... echo!");
+
+            TwoWayOneParameterEchoResponseDocument res =
+                stub.TwoWayOneParameterEcho(req);
+
+            System.out.println(res.getTwoWayOneParameterEchoResponse().getEchoString());
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    /* No parameters */
+    public static void noParameters(Axis2UserGuideServiceStub stub){
+        try{
+            NoParametersRequestDocument req =
+                NoParametersRequestDocument.Factory.newInstance();
+            NoParametersRequestDocument.NoParametersRequest data =
+                req.addNewNoParametersRequest();
+
+            System.out.println(stub.NoParameters(req));
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+
+    /* multiple parameters */
+    public static void multipleParameters(Axis2UserGuideServiceStub stub){
+        try{
+            MultipleParametersAddItemRequestDocument req =
+                MultipleParametersAddItemRequestDocument.Factory.newInstance();
+            MultipleParametersAddItemRequestDocument.
+                MultipleParametersAddItemRequest data =
+                req.addNewMultipleParametersAddItemRequest();
+
+            data.setPrice((float)1.99);
+            data.setItemId((int)23872983);
+            data.setDescription("Must have for cooking");
+            data.setItemName("flour");
+
+            MultipleParametersAddItemResponseDocument res =
+                stub.MultipleParametersAddItem(req);
+            MultipleParametersAddItemResponseDocument.
+                MultipleParametersAddItemResponse dataRes =
+                res.getMultipleParametersAddItemResponse();
+
+            System.out.println(dataRes.getSuccessfulAdd());
+            System.out.println(dataRes.getItemId());
+        } catch(Exception e){
+            e.printStackTrace();
+            System.out.println("\n\n\n");
+        }
+    }
+}</pre>
+
+<p>XMLBeans uses a different architecture from ADB. In XMLBeans, processing
+centers around documents, which are created through the use of factories, and
+which include inner classes for the objects they contain. The process is
+still the same -- you create a request, and send it using the stub -- the
+code is just a bit more complex.</p>
+
+<p>To build the client, type: <code>ant jar.client</code></p>
+
+<p>This action creates two new directories, build and test. The test
+directory will be empty, but the build directory will contain two versions of
+the client. The first version in the lib directory consists of two .jar
+files, one containing the Client class and the stub implementations, and the
+other containing the XMLBeans-related classes. The second version in the
+classes directory consists of just the raw classes.</p>
+
+<p>Make sure all the .jar files in the Axis2 lib directory are on the
+classpath.</p>
+
+<p>If you have a service corresponding to this client (if you don't, check
+out the <a href="userguide-buildingservices.html">Building Services</a>
+document) you can run the client by adding the two .jar files to your
+classpath and typing:
+<code>java.org.apache.axis2.axis2userguide.Client</code></p>
+
+<p>You should see the response in a console window of your servlet container.
+It should look something like this:</p>
+
+<p><img alt="Response in a console window of your servlet container"
+src="images/fig04.jpg" /><br clear="all" />
+</p>
+</body>
+</html>

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-creatingclients.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-creatingclients.html Fri May 25 01:09:03 2007
@@ -0,0 +1,234 @@
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>Apache Axis2 User's Guide- Creating Clients</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all">
+</head>
+
+<body>
+<a name="createclients"></a>
+
+<h1>Apache Axis2 User's Guide - Creating Clients</h1>
+
+<p>When it comes to creating a Web service client, you can do it manually
+(see <a href="userguide-buildingservices.html">Building Services</a>), but in
+most cases you have a Web Service Description Language (WSDL) definition that
+describes the messages clients should send and expect to receive. Axis2
+provides several ways to use this definition to automatically generate a
+client.</p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="userguide.html#intro">Introducing Axis2</a><br>
+
+    <ul>
+      <li><a href="userguide.html#whatis">What is Axis2?</a></li>
+      <li><a href="userguide.html#underhood">What's Under the hood?</a></li>
+      <li><a href="userguide.html#handlessoap">How Axis2 Handles SOAP
+        Messages</a></li>
+      <li><a href="userguide.html#distributions">Axis2 Distributions</a></li>
+      <li><a href="userguide.html#sbd">The Axis2 Standard Binary
+        Distribution</a></li>
+      <li><a href="userguide.html#hierarchy">Axis2.war Directory
+      hierarchy</a></li>
+      <li><a href="userguide.html#docs">Axis2 Documents Distribution</a></li>
+      <li><a href="userguide.html#clients">Axis2 and Clients</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-installingtesting.html#installingtesting">Installing
+    and Testing Client Code</a></li>
+  <li><a href="userguide-introtoservices.html#introservices">Introduction to
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-introtoservices.html#messageexchange">Message
+        Exchange Patterns</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-creatingclients.html#createclients"><strong>Creating
+    Clients</strong></a><br>
+
+    <ul>
+      <li><a
+        href="userguide-creatingclients.html#choosingclient"><strong>Choosing
+        a Client Generation Method</strong></a></li>
+      <li><a
+        href="userguide-creatingclients.html#generating"><strong>Generating
+        Clients</strong></a></li>
+      <li><a href="userguide-creatingclients.html#adb"><strong>Axis Data
+        Binding (ADB)</strong></a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-buildingservices.html#buildservices">Building
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-buildingservices.html#getcomfortable">Getting
+        Comfortable with Available Options</a></li>
+      <li><a href="userguide-buildingservices.html#createscratch">Creating a
+        service from Scratch</a></li>
+      <li><a href="userguide-buildingservices.html#deploypojo">Deploying
+        Plain Old Java Objects</a></li>
+      <li><a href="userguide-buildingservices.html#deployrun">Deploying and
+        Running an Axis2 Service Created from WSDL</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-samples.html">Samples</a></li>
+  <li><a href="userguide-forfurtherstudy.html">For Further Study</a></li>
+</ul>
+<a name="choosingclient"></a>
+
+<h2>Choosing a Client Generation Method</h2>
+
+<p>Axis2 gives you several options when it comes to mapping WSDL to objects
+when generating clients. Three of these options are Axis2 DataBinding
+Framework, XMLBeans, and JiBX databinding. All of these methods involve using
+databinding to create Java objects out of the XML structures used by the
+service, and each has its pros and cons. You can also generate XML in-out
+stubs that are not based on databinding.</p>
+
+<p>Axis2 Databinding Framework (ADB): ADB is probably the simplest method of
+generating an Axis2 client. In most cases, all of the pertinent classes are
+created as inner classes of a main stub class. ADB is very easy to use, but
+it does have limitations. It is not meant to be a full schema binding
+application, and has difficulty with structures such as XML Schema element
+extensions and restrictions.</p>
+
+<p>XMLBeans: Unlike ADB, XMLBeans is a fully functional schema compiler, so
+it doesn't carry the same limitations as ADB. It is, however, a bit more
+complicated to use than ADB. It generates a huge number of files, and the
+programming model, while being certainly usable, is not as straightforward as
+ADB.</p>
+
+<p>JiBX: JiBX is a complete databinding framework that actually provides not
+only WSDL-to-Java conversion, as covered in this document, but also
+Java-to-XML conversion. In some ways, JiBX provides the best of both worlds.
+JiBX is extremely flexible, enabling you to choose the classes that represent
+your entities, but it can be complicated to set up. On the other hand, once
+it is set up, actually using the generated code is as easy as using ADB.</p>
+
+<p>In the end, for simple structures, ADB will likely be enough for you. If,
+on the other hand you need more power or flexibility, whether you choose
+XMLBeans or JiBX depends on how much power or flexibility you need and your
+tolerance for complexity.</p>
+<a name="generating"></a>
+
+<h2>Generating Clients</h2>
+
+<p>The process for generating and using a client varies slightly depending on
+the method of generation you choose. In all three cases in this document,
+clients are generated from the same WSDL file (see <a
+href="userguide-codelisting5.html">Code Listing 5</a>).</p>
+
+<p>Note that the document defines four operations, DoInOnly, NoParameters,
+TwoWayOneParameterEcho, and MultipleParametersAddItem. Each of the clients
+will include methods for calling each of these operations.</p>
+
+<p>(You can get more information on WSDL at <a
+href="http://www.w3.org/2002/ws/desc/">http://www.w3.org/2002/ws/desc/</a>
+.)</p>
+<a name="adb"></a>
+
+<h2>Axis Data Binding (ADB)</h2>
+
+<p>To create a client using ADB, execute the following steps:</p>
+
+<p><b>The short story:</b></p>
+<ol>
+  <li>href="http://ws.apache.org/axis2/download/@axis2_version_dir@/download.cgi#std-bin" <a
+    href="">Download</a> and unpack the Apache Axis2 Standard Distribution,
+    if you have not done it already.</li>
+  <li>Create the client stub with the following command:
+    <pre>%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d adb -s</pre>
+  </li>
+  <li>Create the client (for example, Client.java), a Java application that
+    uses the generated stub, and save it in the
+    org/apache/axis2/axis2userguide directory.</li>
+  <li>Build the client by typing: ant jar.client.</li>
+  <li>Assuming you have a corresponding service, run the client by adding the
+    generated Axis2UserGuideService-test-client.jar file located in build/lib
+    to the classpath and type: java
+  org.apache.axis2.axis2userguide.Client</li>
+</ol>
+
+<p><b>The long story:</b></p>
+
+<p>If you have not done it already, <a
+href="http://ws.apache.org/axis2/download/@axis2_version_dir@/download.cgi#std-bin">download</a>
+and unpack the Apache Axis2 Standard Distribution. The Axis2 WAR Distribution
+does not include the necessary utilities for generating code, such as
+WSDL2Java.</p>
+
+<p>In the ADB method of generating clients, all the functionalities of the
+services are contained in a single class called a stub. The stub contains
+inner classes corresponding to all the necessary objects defined in the WSDL
+file, such as, in the case of this WSDL, DoInOnlyRequestMessage. Once you
+have the stub, you will be able to create a client by simply referring to
+these classes and their methods. To generate the client, issue the following
+command in Code Listing 6.</p>
+
+<h3><b>Code Listing 6 - Generating the Client</b></h3>
+<pre>%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d adb -s</pre>
+
+<p>This command analyzes the WSDL file and creates the stub in the package
+org.apache.axis2.axis2userguide. The options specify that you want the ADB
+data binding method (-d), and synchronous or blocking, methods (-s). In other
+words, when the client makes an In-Out call to the service, it will wait for
+a response before continuing.</p>
+
+<p>Once you run this command, you will see two new items in the directory.
+The first is the build.xml file, which contains the instructions for <a
+href="http://ant.apache.org/">Ant</a> to compile the generated classes. The
+second is the src directory, which contains the actual
+Axis2UserGuideServiceStub.java file. If you open this file, you will see a
+collection of inner classes for each of the items in the WSDL file. You'll
+also see a number of calls to the Axis2 client API, including those that use
+AXIOM to build and analyze the incoming and outgoing messages.</p>
+
+<p>Now you need a client to make use of this code. To create a client, create
+a new class and save it as Client.java in the org/apache/axis2/axis2userguide
+directory. It should contain the following code in <a
+href="userguide-codelisting7.html">Code Listing 7</a>.</p>
+
+<p>Note that using the service is simply a matter of creating and populating
+the appropriate type of request using the names defined in the WSDL file, and
+then using the stub to actually send the request to the appropriate method.
+For example, to call the DoInOnly operation, you create a DoInOnlyRequest,
+use its setMessageString() method to set the contents of its messageString
+element, and pass it as an argument to stub.DoInOnly().</p>
+
+<p>To build the client, type: ant jar.client</p>
+
+<p>This action creates two new directories, build and test. The test
+directory will be empty, but the build directory contains two versions of the
+client. The first version, in the lib directory, is a .jar file that contains
+the client class and the stub. The second, in the classes directory, is just
+raw classes.</p>
+
+<p>Make sure all the jar files in the Axis2 lib directory are in the
+classpath.</p>
+
+<p>If you have a service corresponding to this client you can run the client
+by adding the jar file to your classpath and typing: java
+org.apache.axis2.axis2userguide.Client </p>
+
+<p>(If you don't have such a service,, refer to the <a
+href="userguide-buildingservices.html">Building services</a> document.)</p>
+
+<p>You should see the response in the console window of your servlet
+container. It should look something like this:</p>
+
+<p><img alt="Response in a console window of your servlet container"
+src="images/fig03.jpg"><br clear="all">
+</p>
+
+<p>ADB is not your only option for generating Web service clients. Other
+options include <a
+href="userguide-creatingclients-xmlbeans.html">XmlBeans</a>, <a
+href="userguide-creatingclients-jibx.html">JiBX</a>, JAXME and JAXBRI.</p>
+
+<p><strong>See the Next Section</strong> -<a
+href="userguide-buildingservices.html#buildservices">Building Services</a></p>
+</body>
+</html>

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-forfurtherstudy.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-forfurtherstudy.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-forfurtherstudy.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-forfurtherstudy.html Fri May 25 01:09:03 2007
@@ -0,0 +1,112 @@
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>Apache Axis2 User's Guide-For Further Study</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all" />
+</head>
+
+<body>
+<a name="#forfurtherstudy" id="#forfurtherstudy"></a>
+
+<h1>Apache Axis2 User's Guide - For Further Study</h1>
+<!--<h2>Content</h2>
+<ul>
+<li><a href="userguide.html#intro">Introducing Axis2</a><br />
+
+<ul>
+<li><a href="userguide.html#whatis">What is Axis2</a></li>
+<li><a href="userguide.html#underhood">What's under the
+hood?</a></li>
+<li><a href="userguide.html#handlessoap">How Axis2 handles SOAP
+messages</a></li>
+<li><a href="userguide.html#distributions">Axis2
+distributions</a></li>
+<li><a href="userguide.html#sbd">The Axis2 Standard Binary
+Distribution</a></li>
+<li><a href="userguide.html#hierarchy">Axis2.war document
+hierarchy</a></li>
+<li><a href="userguide.html#clients">Axis2 and clients</a></li>
+</ul>
+</li>
+<li><a href="userguide-installingtesting.html#installingtesting">Installing
+and testing client code</a></li>
+<li><a href="userguide-introtoservices.html#introservices">Introduction to
+Services</a><br />
+
+<ul>
+<li><a href="userguide-introtoservices.html#messageexchange">Message
+Exchange Patterns</a></li>
+</ul>
+</li>
+<li><a href="userguide-creatingclients.html#createclients">Creating
+Clients</a><br />
+
+<ul>
+<li><a href="userguide-creatingclients.html#choosingclient">Choosing a
+Client Generation Method</a></li>
+<li><a href="userguide-creatingclients.html#generating">Generating
+Clients</a></li>
+<li><a href="userguide-creatingclients.html#adb">Axis Data Binding
+(ADB)</a></li>
+</ul>
+</li>
+<li><a href="userguide-buildingservices.html#buildservices">Building
+Services</a><br />
+
+<ul>
+<li><a href="userguide-buildingservices.html#getcomfortable">Getting
+Comfortable with Available Options</a></li>
+<li><a href="userguide-buildingservices.html#createscratch">Creating a
+service from scratch</a></li>
+<li><a href="userguide-buildingservices.html#deploypojo">Deploying
+Plain Old Java Objects</a></li>
+<li><a href="userguide-buildingservices.html#deployrun">Deploying and
+running an Axis2 service created from WSDL</a></li>
+</ul>
+</li>
+<li><a href="userguide-samples.html">Samples</a>
+<ul>
+<li><a href="userguide-samples.html#clients">Clients</a></li>
+<li><a href="userguide-samples.html#services">Services</a></li>
+<li><a href="userguide-samples.html#wsdl">Sample WSDL files</a></li>
+<li><a href="userguide-samples.html#others">Other Samples</a></li>
+</ul>
+</li>
+<li><a href="userguide-forfurtherstudy.html"><strong>For Further
+Study</strong></a></li>
+</ul>-->
+
+<h2>Resources</h2>
+
+<p>Axis2 Architecture-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/Axis2ArchitectureGuide.html">http://ws.apache.org/axis2/@axis2_version_dir@/Axis2ArchitectureGuide.html</a></p>
+
+<p>XML processing with AXIOM-<a
+href="http://ws.apache.org/commons/axiom/OMTutorial.html">http://ws.apache.org/commons/axiom/OMTutorial.html</a></p>
+
+<p>RESTful Web Services-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/rest-ws.html">http://ws.apache.org/axis2/@axis2_version_dir@/rest-ws.html</a></p>
+
+<p>TCP Transport-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/tcp-transport.html">http://ws.apache.org/axis2/@axis2_version_dir@/tcp-transport.html</a></p>
+
+<p>Mail Transport-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/mail-transport.html">http://ws.apache.org/axis2/@axis2_version_dir@/mail-transport.html</a></p>
+
+<p>HTTP Transports-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/http-transport.html">http://ws.apache.org/axis2/@axis2_version_dir@/http-transport.html</a></p>
+
+<p>MTOM with Axis2-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/mtom-guide.html">http://ws.apache.org/axis2/@axis2_version_dir@/mtom-guide.html</a></p>
+
+<p>Securing SOAP Messages with Apache Rampart- <a
+href="../modules/rampart/@axis2_version_dir@/security-module.html">http://ws.apache.org/axis2/modules/rampart/@axis2_version_dir@/security-module.html</a></p>
+
+<p>SOAPMonitor-<a
+href="http://ws.apache.org/axis2/@axis2_version_dir@/soapmonitor-module.html">http://ws.apache.org/axis2/@axis2_version_dir@/soapmonitor-module.html</a></p>
+
+<p>Apache Axis2 Advance User's Guide- <a
+href="adv-userguide.html">http://ws.apache.org/axis2/@axis2_version_dir@/adv-userguide.html</a></p>
+</body>
+</html>

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-installingtesting.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-installingtesting.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-installingtesting.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-installingtesting.html Fri May 25 01:09:03 2007
@@ -0,0 +1,129 @@
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>Apache Axis2 User's Guide-Installing and Testing Client Code</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all">
+</head>
+
+<body lang="en">
+<a name="installingtesting"></a>
+
+<h1>Apache Axis2 User's Guide - Installing and Testing Client Code</h1>
+
+<p>The best way to make sure that your system is running Apache Axis2 is to
+install and test both a service and a client. The process involves the
+following steps:</p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="userguide.html#intro">Introducing Axis2</a><br>
+
+    <ul>
+      <li><a href="userguide.html#whatis">What is Axis2?</a></li>
+      <li><a href="userguide.html#underhood">What's under the hood?</a></li>
+      <li><a href="userguide.html#handlessoap">How Axis2 handles SOAP
+        messages</a></li>
+      <li><a href="userguide.html#distributions">Axis2 distributions</a></li>
+      <li><a href="userguide.html#sbd">The Axis2 Standard Binary
+        Distribution</a></li>
+      <li><a href="userguide.html#hierarchy">Axis2.war Directory
+      Hierarchy</a></li>
+      <li><a href="userguide.html#docs">Axis2 Documents Distribution</a></li>
+      <li><a href="userguide.html#clients">Axis2 and clients</a></li>
+    </ul>
+  </li>
+  <li><a
+    href="userguide-installingtesting.html#installingtesting"><strong>Installing
+    and testing client code</strong></a></li>
+  <li><a href="userguide-introtoservices.html#introservices">Introduction to
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-introtoservices.html#messageexchange">Message
+        Exchange Patterns</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-creatingclients.html#createclients">Creating
+    Clients</a><br>
+
+    <ul>
+      <li><a href="userguide-creatingclients.html#choosingclient">Choosing a
+        Client Generation Method</a></li>
+      <li><a href="userguide-creatingclients.html#generating">Generating
+        Clients</a></li>
+      <li><a href="userguide-creatingclients.html#adb">Axis Data Binding
+        (ADB)</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-buildingservices.html#buildservices">Building
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-buildingservices.html#getcomfortable">Getting
+        Comfortable with the Available Options</a></li>
+      <li><a href="userguide-buildingservices.html#createscratch">Creating a
+        service from scratch</a></li>
+      <li><a href="userguide-buildingservices.html#deploypojo">Deploying
+        Plain Old Java Objects</a></li>
+      <li><a href="userguide-buildingservices.html#deployrun">Deploying and
+        running an Axis2 service created from WSDL</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-samples.html">Samples</a></li>
+  <li><a href="userguide-forfurtherstudy.html">For Further Study</a></li>
+</ul>
+
+<p><b>The Short Story:</b></p>
+<ol>
+  <li>Install Apache Axis2 in a suitable container, such as Apache Tomcat, by
+    copying the axis2.war file to the webapps directory.</li>
+  <li>Install the service into the Axis2 application by copying the *.aar
+    file into the Axis2 services directory.</li>
+  <li>Install the client on the system on which you want to run it, and make
+    sure all the Axis2 libraries are on the CLASSPATH.</li>
+  <li>Run the client.</li>
+</ol>
+<!--stopped here-->
+
+<p><b>The Long Story:</b></p>
+
+<p>Start by installing a suitable container, such as <a
+href="http://tomcat.apache.org/">Apache Tomcat</a>. Any J2EE server will do.
+To install Apache Axis2 on the server, download the Axis2 WAR distribution
+from <a
+href="http://ws.apache.org/axis2/download.cgi">http://ws.apache.org/axis2/download.cgi</a>
+and place the axis2.war file in the server's webapps directory. The server
+will then expand the distribution into its proper structure, as seen in the
+<a href="userguide-intro.html#hierarchy">earlier section</a>.</p>
+
+<p>Apache Axis2 services come bundled as *.aar files, which contain all the
+pieces necessary to define the service, such as the necessary classes and
+libraries and the services.xml file that defines the service's behavior. You
+can install the service using the <a href="webadminguide.html">Web
+administration application</a>, but to make things simple for now, copy the
+*.aar file into the Axis2 services directory. For example, to install the
+MyService service distributed as one of the Axis2 samples, copy the file
+&lt;AXIS2_HOME&gt;/samples/userguide/build/MyService.aar file, which is built
+using the <code>ant</code> command, from
+&lt;AXIS2_HOME&gt;/samples/userguide, to the directory
+&lt;J2EE_HOME&gt;/webapps/axis2/WEB-INF/services.</p>
+
+<p>Your client can come in any number of forms, from a collection of files to
+a single *.jar file. The important thing is to ensure that all the
+appropriate classes are on the classpath. In addition to the classes that
+pertain to the actual client, you must also add the Axis2 .jar files into the
+CLASSPATH. Normally you will do this by downloading and unpacking the <a
+href="http://ws.apache.org/axis2/download/@axis2_version_dir@/download.cgi#std-bin">Axis2
+Standard Distribution</a> and adding the *.jar files in the lib directory to
+your CLASSPATH, or you also have the option of running your client using the
+axis2.bat (or axis2.sh) script, which takes care of it for you. For example,
+you can run a client with the command:</p>
+
+<p>axis2 org.apache.axis2.axis2userguide.Client.</p>
+
+<p><strong>See Next Section</strong>- <a
+href="userguide-introtoservices.html#introservices">Introduction to
+Services</a></p>
+</body>
+</html>

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-introtoservices.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-introtoservices.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-introtoservices.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-introtoservices.html Fri May 25 01:09:03 2007
@@ -0,0 +1,164 @@
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>Apache Axis2 User's Guide- Introduction to Services</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all">
+</head>
+
+<body>
+<a name="introservices"></a>
+
+<h1>Apache Axis2 User's Guide - Introduction to Services</h1>
+
+<p>The term "Web services" can apply to a number of different ways of sending
+information back and forth. However, this guide focuses on the sending and
+receiving of SOAP messages. SOAP messages are XML documents that consist of
+an "envelope" containing a "payload" (see Code Listing 4).</p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="userguide.html#intro">Introducing Axis2</a><br>
+
+    <ul>
+      <li><a href="userguide.html#whatis">What is Axis2?</a></li>
+      <li><a href="userguide.html#underhood">What's under the hood?</a></li>
+      <li><a href="userguide.html#handlessoap">How Axis2 handles SOAP
+        messages</a></li>
+      <li><a href="userguide.html#distributions">Axis2 distributions</a></li>
+      <li><a href="userguide.html#sbd">The Axis2 Standard Binary
+        Distribution</a></li>
+      <li><a href="userguide.html#hierarchy">Axis2.war Directory
+      Hierarchy</a></li>
+      <li><a href="userguide.html#docs">Axis2 Documents Distribution</a></li>
+      <li><a href="userguide.html#clients">Axis2 and clients</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-installingtesting.html#installingtesting">Installing
+    and testing client code</a></li>
+  <li><a
+    href="userguide-introtoservices.html#introservices"><strong>Introduction
+    to Services</strong></a><br>
+
+    <ul>
+      <li><a
+        href="userguide-introtoservices.html#messageexchange"><strong>Message
+        Exchange Patterns</strong></a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-creatingclients.html#createclients">Creating
+    Clients</a><br>
+
+    <ul>
+      <li><a href="userguide-creatingclients.html#choosingclient">Choosing a
+        Client Generation Method</a></li>
+      <li><a href="userguide-creatingclients.html#generating">Generating
+        Clients</a></li>
+      <li><a href="userguide-creatingclients.html#adb">Axis Data Binding
+        (ADB)</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-buildingservices.html#buildservices">Building
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-buildingservices.html#getcomfortable">Getting
+        Comfortable with the Available Options</a></li>
+      <li><a href="userguide-buildingservices.html#createscratch">Creating a
+        service from scratch</a></li>
+      <li><a href="userguide-buildingservices.html#deploypojo">Deploying
+        Plain Old Java Objects</a></li>
+      <li><a href="userguide-buildingservices.html#deployrun">Deploying and
+        running an Axis2 service created from WSDL</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-samples.html">Samples</a></li>
+  <li><a href="userguide-forfurtherstudy.html">For Further Study</a></li>
+</ul>
+
+<h3>Code Listing 4: Example SOAP Message</h3>
+<pre>&lt;?xml version='1.0' ?&gt;
+&lt;env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+xmlns:wsa="http://www.w3.org/2005/03/addressing"&gt; 
+ &lt;env:Header&gt;
+
+    &lt;wsa:MessageID&gt;
+      http://ws.apache.org/9C21DE32-DB42-1228-C42E-66CB101421AD
+    &lt;/wsa:MessageID&gt;
+    &lt;wsa:ReplyTo&gt;
+      &lt;wsa:Address&gt;http://example.com/projects/clientApp&lt;/wsa:Address&gt;
+    &lt;/wsa:ReplyTo&gt;
+    
+&lt;wsa:To&gt;http://example.com/axis2/publishingService&lt;/wsa:To&gt;
+    
+&lt;wsa:Action&gt;http://example.com/axis2/addDocument&lt;/wsa:Action&gt;
+ 
+&lt;/env:Header&gt;
+ &lt;env:Body&gt;
+
+  &lt;addDocument&gt;
+   &lt;docTitle&gt;What I Did On My Summer Vacation&lt;/doctitle&gt;
+   &lt;docSubtitle&gt;Children's Essays from Accross the World&lt;/docSubtitle&gt;
+   &lt;docLocation&gt;contentRepos/summerVac.doc&lt;/docLocation&gt;
+  &lt;/addDocument&gt;
+
+ &lt;/env:Body&gt;
+&lt;/env:Envelope&gt;</pre>
+
+<p>This XML document consists of the outer element or the SOAP Envelope, and
+its contents. The SOAP Envelope is in the SOAP namespace,
+http://www.w3.org/2003/05/soap-envelope, prefixed as env: and contains up to
+two children. This envelope is a standard format that pertains to every
+single SOAP message sent and received by any SOAP Web service.</p>
+
+<p>The contents of the Envelope consists of two parts; the first being the
+SOAP headers-the contents of the env:Header element. These headers, such as
+the WS-Addressing elements shown here, provide additional information about
+the message and how it should be handled. A SOAP message may carry headers
+relating to several aspects of the message, or it may carry no headers at
+all. These headers are typically processed by the message handlers.</p>
+
+<p>The second and arguably the most important part of the message is the
+payload, which consists of the contents of the env:Body element. This is the
+actual message intended for the receiver, and it is the information that the
+main application will ultimately process.</p>
+<a name="messageexchange"></a>
+
+<h2>Message Exchange Patterns</h2>
+
+<p>Although all SOAP messages carry the same structure, the ways in which
+they are used can be combined into a number of different "message exchange
+patterns", or MEPs. The two major message exchange patterns are:</p>
+<ul>
+  <li>In-Out: in this MEP, the client sends a SOAP message to the server,
+    which processes the message and sends a response back. This is probably
+    the most commonly used MEP, and is useful for tasks such as searching for
+    information or submitting information in situations in where
+    acknowledgment is important.</li>
+  <li>In-Only: In this MEP, the client sends a message to the server without
+    expecting a response. You may use this MEP for activities such as pinging
+    a server to wake it up, reporting logging information for which you do
+    not need an acknowledgment and so on.</li>
+</ul>
+
+<p>Within these two MEPs, you also have several variables to consider:</p>
+<ul>
+  <li>Blocking versus non-blocking: When the client sends a message, the
+    application may wait to receive a response before moving on, or it may
+    simply send a message and move on by specifying a callback action to be
+    completed when the response is received.</li>
+  <li>Number of parameters: Ultimately, a message sent from a client to
+    server is intended to execute a particular action. That action may not
+    require any parameters, or it may require one or more parameters. These
+    parameters must be encoded as part of the payload of the message.</li>
+</ul>
+
+<p>Taking all these options into consideration, you can create virtually any
+MEP. For example, you can create an Out-Only system by reversing roles for
+the In-Only MEP. Apache Axis2 also includes support for less prominent MEPs,
+such as Robust-In-Only.</p>
+
+<p><strong>See Next Section</strong> - <a
+href="userguide-creatingclients.html#createclients">Creating Clients</a></p>
+</body>
+</html>

Added: webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-samples.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/%40axis2_version_dir%40/userguide-samples.html?view=auto&rev=541579
==============================================================================
--- webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-samples.html (added)
+++ webservices/axis2/trunk/java/xdocs/@axis2_version_dir@/userguide-samples.html Fri May 25 01:09:03 2007
@@ -0,0 +1,204 @@
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="">
+  <title>Apache Axis2 User's Guide- The Samples</title>
+  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
+  media="all">
+</head>
+
+<body lang="en">
+<a name="samples"></a>
+
+<h1>Apache Axis2 User's Guide - The Samples</h1>
+
+<p>The Apache Axis2 Standard Distribution provides a number of samples you
+can use as a guide for implementing specific features and capabilities. These
+services are listed in this section.</p>
+
+<h2>Content</h2>
+<ul>
+  <li><a href="userguide.html#intro">Introducing Axis2</a><br>
+
+    <ul>
+      <li><a href="userguide.html#whatis">What is Axis2?</a></li>
+      <li><a href="userguide.html#underhood">What's under the hood?</a></li>
+      <li><a href="userguide.html#handlessoap">How Axis2 handles SOAP
+        messages</a></li>
+      <li><a href="userguide.html#distributions">Axis2 distributions</a></li>
+      <li><a href="userguide.html#sbd">The Axis2 Standard Binary
+        Distribution</a></li>
+      <li><a href="userguide.html#hierarchy">Axis2.war Directory
+      Hierarchy</a></li>
+      <li><a href="userguide.html#docs">Axis2 Documents Distribution</a></li>
+      <li><a href="userguide.html#clients">Axis2 and clients</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-installingtesting.html#installingtesting">Installing
+    and testing client code</a></li>
+  <li><a href="userguide-introtoservices.html#introservices">Introduction to
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-introtoservices.html#messageexchange">Message
+        Exchange Patterns</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-creatingclients.html#createclients">Creating
+    Clients</a><br>
+
+    <ul>
+      <li><a href="userguide-creatingclients.html#choosingclient">Choosing a
+        Client Generation Method</a></li>
+      <li><a href="userguide-creatingclients.html#generating">Generating
+        Clients</a></li>
+      <li><a href="userguide-creatingclients.html#adb">Axis Data Binding
+        (ADB)</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-buildingservices.html#buildservices">Building
+    Services</a><br>
+
+    <ul>
+      <li><a href="userguide-buildingservices.html#getcomfortable">Getting
+        Comfortable with the Available Options</a></li>
+      <li><a href="userguide-buildingservices.html#createscratch">Creating a
+        service from scratch</a></li>
+      <li><a href="userguide-buildingservices.html#deploypojo">Deploying
+        Plain Old Java Objects</a></li>
+      <li><a href="userguide-buildingservices.html#deployrun">Deploying and
+        running an Axis2 service created from WSDL</a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-samples.html"><strong>Samples</strong></a>
+    <ul>
+      <li><a
+        href="userguide-samples.html#clients"><strong>Clients</strong></a></li>
+      <li><a
+        href="userguide-samples.html#services"><strong>Services</strong></a></li>
+      <li><a href="userguide-samples.html#wsdl"><strong>Sample WSDL
+        files</strong></a></li>
+      <li><a href="userguide-samples.html#others"><strong>Other
+        Samples</strong></a></li>
+    </ul>
+  </li>
+  <li><a href="userguide-forfurtherstudy.html">For Further Study</a></li>
+</ul>
+<a name="clients"></a>
+
+<h2>Clients (in AXIS2_HOME/samples/userguide/src/clients):</h2>
+
+<p><strong>EchoBlockingClient.java</strong>: A basic example of the
+send/receive MEP.</p>
+
+<p><strong>EchoBlockingDualClient.java</strong>: Specifies that the return
+message should be sent over a different channel than the request message.</p>
+
+<p><strong>EchoBlockingWsaBasedClient.java</strong>: Provides an example of
+using the capabilities of WS-Addressing action mapping.</p>
+
+<p><strong>EchoNonBlockingClient.java</strong>: Demonstrates an asynchronous
+request using Callbacks.</p>
+
+<p><strong>EchoNonBlockingDualClient.java</strong>: Similar to the above, but
+uses a separate listener for the response.</p>
+
+<p><strong>ClientForWebServiceWithModule.java</strong>: Simply makes a call
+to a service with engaged modules.</p>
+
+<p><strong>ClientSideModuleEngagement.java</strong>: Demonstrates the use of
+modules on the client side, in addition to the server side.</p>
+
+<p><strong>MailClient.java</strong>: Demonstrates the use of the Robust
+In-Only MEP.</p>
+
+<p><strong>PingClient.java</strong>: A simple "fire and forget" client.</p>
+
+<p><strong>RESTClient.java</strong>: Demonstrates the ability to request a
+REST response rather than a SOAP response. Also demonstrates setting
+arbitrary properties on the Options object.</p>
+
+<p><strong>TCPClient.java</strong>: Provides an example of using the TCP
+transport rather than HTTP.</p>
+<a name="services"></a>
+
+<h2>Services (in AXIS2_HOME/samples/userguide):</h2>
+
+<p><strong>groovyService.aar</strong>: Demonstrates how to use Groovy classes
+in the processing of SOAP messages.</p>
+
+<p><strong>MyService.aar</strong>: Provides simple "echo" and "ping"
+operations.</p>
+
+<p><strong>MyServiceWithModule.aar</strong>: Same as above, but demonstrates
+how to engage a module.</p>
+
+<p><strong>WsaMappingService.aar</strong>: Demonstrates the mapping of
+WS-Addressing actions.</p>
+<a name="wsdl"></a>
+
+<h2>Sample WSDL files (in AXIS2_HOME/samples):</h2>
+
+<p><strong>Axis2SampleDocLit.wsdl</strong>: Demonstrates the use of the
+Document/Literal WSDL pattern, rather than RPC.</p>
+
+<p><strong>perf.wsdl</strong>: Demonstrates the use of array values as input
+values.</p>
+<a name="others"></a>
+
+<h2>Other samples</h2>
+
+<h3>In AXIS2_HOME/samples Directory:</h3>
+<!--<p><strong>amazonqs</strong>: Uses the Amazon Queue Service to store and
+retrieve String objects.</p>-->
+
+<p><strong>faulthandling</strong>: Demonstrates the use of SOAP faults and
+their definitions in WSDL enabling exception processing in the client.</p>
+<!--<p><strong>googlesearch</strong>: Creates a GUI-based application making use
+of Google Web Services asynchronously.</p>-->
+
+<p><strong>googleSpellcheck</strong>: Demonstrates both synchronous and
+non-synchronous use of the Google Web Service in a GUI.</p>
+
+<p><strong>mtom</strong>: Demonstrates the use of MTOM and SOAP with
+Attachments to send binary files to a service.</p>
+
+<p><strong>saopwithattachments</strong>: Demonstrates the capabilities and
+power of SOAP with Attachment support and the Attachment API of Axis2.</p>
+
+<p><strong>pojo</strong>: Example of a POJO (Plain Old Java Object) Web
+service. It shows how to expose the methods of a Java class as a Web service
+using Apache Aixs2.</p>
+
+<p><strong>servicelifecycle</strong>: Demonstrates the usage of a service
+life cycle and a bit of session management. The main idea is to show where
+and how to use the service life cycle interface and session related
+methods.</p>
+<!--<p><strong>sgccalculator</strong>: A simple calculator that demonstrates the
+use of Service Groups.</p>-->
+
+<p><strong>databinding</strong>: Demonstrates how to use WSDL2Java generated
+code with Castor.</p>
+
+<p><strong>version</strong>: A very simple service that simply outputs the
+Apache Axis2 version.</p>
+
+<p><strong>yahoorestearch</strong>: A complete example of the use of a REST
+service rather than a SOAP service.</p>
+
+<h3>External:</h3>
+
+<p><strong>FlickrClient</strong> : Demonstrates code generation capabilities
+for WSDL 2.0. The FlickrService.wsdl describes services offered by flickr in
+terms of WSDL 2.0. It also demonstrates how a restful service can be
+described using the HTTPBinding of wsdl 2.0.</p>
+
+<p>Extract the <a
+href="http://dist.wso2.org/products/wsas/java/nightly-build/">WSO2 WSAS for
+Java nightly build distribution</a> and you will find the sample at
+WSAS_HOME/samples/FlickrClient or checkout sample from SVN:
+http://wso2.org/repos/wso2/trunk/wsas/java/modules/samples/FlickrClient</p>
+
+<p><strong>See Next Section</strong> - <a
+href="userguide-forfurtherstudy.html">For Further Study</a></p>
+</body>
+</html>



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org