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 2006/12/20 06:28:49 UTC
svn commit: r488922 [2/3] - /webservices/axis2/trunk/java/xdocs/1_1/
Modified: webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients-xmlbeans.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients-xmlbeans.html?view=diff&rev=488922&r1=488921&r2=488922
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients-xmlbeans.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients-xmlbeans.html Tue Dec 19 21:28:45 2006
@@ -1,404 +1,406 @@
-<?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>
-</head>
-
-<body>
-<h1 class="title">Generating a Web Service Client using Axis2 and
-XmlBeans</h1>
-
-<p>This document explains how to generate a Web service client using Axis2
-and XmlBeans data binding. The service has the following WSDL:</p>
-
-<p><b>Code Listing 1: The WSDL file</b></p>
-<pre><?xml version="1.0" encoding="UTF-8"?>
-<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">
-
- <wsdl:types>
- <schema
- elementFormDefault="qualified"
- targetNamespace="http://apache.org/axis2/Axis2UserGuide"
- xmlns="http://www.w3.org/2001/XMLSchema">
-
- <!-- ELEMENTS -->
-
- <element name="DoInOnlyRequest">
- <complexType>
- <sequence>
- <element name="messageString" type="xsd:string"/>
- </sequence>
- </complexType>
- </element>
-
- <element name="TwoWayOneParameterEchoRequest">
- <complexType>
- <sequence>
- <element name="echoString" type="xsd:string"/>
- </sequence>
- </complexType>
- </element>
- <element name="TwoWayOneParameterEchoResponse">
- <complexType>
- <sequence>
- <element name="echoString" type="xsd:string"/>
- </sequence>
- </complexType>
- </element>
-
- <element name="NoParametersRequest">
- <complexType/>
- </element>
- <element name="NoParametersResponse">
- <complexType/>
- </element>
-
- <element name="MultipleParametersAddItemRequest">
- <complexType>
- <sequence>
- <element name="itemId" type="xsd:int"/>
- <element name="itemName" type="xsd:string"/>
- <element name="price" type="xsd:float"/>
- <element name="description" type="xsd:string"/>
- </sequence>
- </complexType>
- </element>
-
- <element name="MultipleParametersAddItemResponse">
- <complexType>
- <sequence>
- <element name="itemId" type="xsd:int"/>
- <element name="successfulAdd" type="xsd:boolean"/>
- </sequence>
- </complexType>
- </element>
-
- </schema>
- </wsdl:types>
-
-
- <!-- MESSAGES -->
-
- <wsdl:message name="DoInOnlyRequestMessage">
- <wsdl:part name="input" element="impl:DoInOnlyRequest"/>
- </wsdl:message>
-
- <wsdl:message name="TwoWayOneParameterEchoRequestMessage">
- <wsdl:part name="input" element="impl:TwoWayOneParameterEchoRequest"/>
- </wsdl:message>
- <wsdl:message name="TwoWayOneParameterEchoResponseMessage">
- <wsdl:part name="output" element="impl:TwoWayOneParameterEchoResponse"/>
- </wsdl:message>
-
- <wsdl:message name="NoParametersRequestMessage">
- <wsdl:part name="input" element="impl:NoParametersRequest"/>
- </wsdl:message>
- <wsdl:message name="NoParametersResponseMessage">
- <wsdl:part name="output" element="impl:NoParametersResponse"/>
- </wsdl:message>
-
- <wsdl:message name="MultipleParametersAddItemRequestMessage">
- <wsdl:part name="input" element="impl:MultipleParametersAddItemRequest"/>
- </wsdl:message>
- <wsdl:message name="MultipleParametersAddItemResponseMessage">
- <wsdl:part name="output" element="impl:MultipleParametersAddItemResponse"/>
- </wsdl:message>
-
-
- <!-- Port type (operations) -->
-
- <wsdl:portType name="Axis2UserGuidePortType">
-
- <wsdl:operation name="DoInOnly" parameterOrder="input">
- <wsdl:input name="DoInOnlyRequestMessage"
- message="impl:DoInOnlyRequestMessage"/>
- </wsdl:operation>
-
- <wsdl:operation name="TwoWayOneParameterEcho" parameterOrder="input">
- <wsdl:input name="TwoWayOneParameterEchoRequestMessage"
- message="impl:TwoWayOneParameterEchoRequestMessage"/>
- <wsdl:output name="TwoWayOneParameterEchoResponseMessage"
- message="impl:TwoWayOneParameterEchoResponseMessage"/>
- </wsdl:operation>
-
- <wsdl:operation name="NoParameters" parameterOrder="input">
- <wsdl:input name="NoParametersRequestMessage"
- message="impl:NoParametersRequestMessage"/>
- <wsdl:output name="NoParametersResponseMessage"
- message="impl:NoParametersResponseMessage"/>
- </wsdl:operation>
-
- <wsdl:operation name="MultipleParametersAddItem" parameterOrder="input">
- <wsdl:input name="MultipleParametersAddItemRequestMessage"
- message="impl:MultipleParametersAddItemRequestMessage"/>
- <wsdl:output name="MultipleParametersAddItemResponseMessage"
- message="impl:MultipleParametersAddItemResponseMessage"/>
- </wsdl:operation>
-
- </wsdl:portType>
-
-
- <!-- BINDING (bind operations) -->
- <wsdl:binding
- name="Axis2UserGuideSoapBinding"
- type="impl:Axis2UserGuidePortType">
- <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
-
- <wsdl:operation name="DoInOnly">
- <wsdlsoap:operation soapAction="DoInOnly"/>
- <wsdl:input>
- <wsdlsoap:body use="literal"/>
- </wsdl:input>
- </wsdl:operation>
-
- <wsdl:operation name="TwoWayOneParameterEcho">
- <wsdlsoap:operation soapAction="TwoWayOneParameterEcho"/>
- <wsdl:input>
- <wsdlsoap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <wsdlsoap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
-
- <wsdl:operation name="NoParameters">
- <wsdlsoap:operation soapAction="NoParameters"/>
- <wsdl:input>
- <wsdlsoap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <wsdlsoap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
-
- <wsdl:operation name="MultipleParametersAddItem">
- <wsdlsoap:operation soapAction="MultipleParametersAddItem"/>
- <wsdl:input>
- <wsdlsoap:body use="literal"/>
- </wsdl:input>
- <wsdl:output>
- <wsdlsoap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
-
-
- <!-- SERVICE -->
-
- <wsdl:service name="Axis2UserGuideService">
- <wsdl:port binding="impl:Axis2UserGuideSoapBinding"
- name="Axis2UserGuide">
- <wsdlsoap:address location="http://localhost:8080/axis2/services/Axis2UserGuide"/>
- </wsdl:port>
- </wsdl:service>
-</wsdl:definitions></pre>
-
-<p>Notice 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>
-
-<p><b>The short story:</b></p>
-<ol>
- <li>If you have not done it already, <a
- href="http://ws.apache.org/axis2/download/1_1/download.cgi#std-bin">download</a>
- and unpack the Apache Axis2 Standard Distribution.</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: ant jar.client.</li>
- <li>Make sure all of the jar files in the Axis2 lib directory are on 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 typing:
- <pre>java org.apache.axis2.axis2userguide.Client</pre>
- </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/1_1/download.cgi#std-bin">download</a>
-and unpack the Apache Axis2 Standard Distribution. 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 of 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: 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, 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 of 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.xhtml">Building Services</a>
-document -- you can run the client by adding the two jar files to your
-classpath and typing: java org.apache.axis2.axis2userguide.Client</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>
+<?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 Axis2 and
+XmlBeans</h1>
+
+<p>This document explains how to generate a Web service client using Axis2
+and XmlBeans data binding. The service has the following WSDL:</p>
+
+<p><b>Code Listing 1: The WSDL file</b></p>
+<pre><?xml version="1.0" encoding="UTF-8"?>
+<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">
+
+ <wsdl:types>
+ <schema
+ elementFormDefault="qualified"
+ targetNamespace="http://apache.org/axis2/Axis2UserGuide"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <!-- ELEMENTS -->
+
+ <element name="DoInOnlyRequest">
+ <complexType>
+ <sequence>
+ <element name="messageString" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="TwoWayOneParameterEchoRequest">
+ <complexType>
+ <sequence>
+ <element name="echoString" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="TwoWayOneParameterEchoResponse">
+ <complexType>
+ <sequence>
+ <element name="echoString" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="NoParametersRequest">
+ <complexType/>
+ </element>
+ <element name="NoParametersResponse">
+ <complexType/>
+ </element>
+
+ <element name="MultipleParametersAddItemRequest">
+ <complexType>
+ <sequence>
+ <element name="itemId" type="xsd:int"/>
+ <element name="itemName" type="xsd:string"/>
+ <element name="price" type="xsd:float"/>
+ <element name="description" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="MultipleParametersAddItemResponse">
+ <complexType>
+ <sequence>
+ <element name="itemId" type="xsd:int"/>
+ <element name="successfulAdd" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ </schema>
+ </wsdl:types>
+
+
+ <!-- MESSAGES -->
+
+ <wsdl:message name="DoInOnlyRequestMessage">
+ <wsdl:part name="input" element="impl:DoInOnlyRequest"/>
+ </wsdl:message>
+
+ <wsdl:message name="TwoWayOneParameterEchoRequestMessage">
+ <wsdl:part name="input" element="impl:TwoWayOneParameterEchoRequest"/>
+ </wsdl:message>
+ <wsdl:message name="TwoWayOneParameterEchoResponseMessage">
+ <wsdl:part name="output" element="impl:TwoWayOneParameterEchoResponse"/>
+ </wsdl:message>
+
+ <wsdl:message name="NoParametersRequestMessage">
+ <wsdl:part name="input" element="impl:NoParametersRequest"/>
+ </wsdl:message>
+ <wsdl:message name="NoParametersResponseMessage">
+ <wsdl:part name="output" element="impl:NoParametersResponse"/>
+ </wsdl:message>
+
+ <wsdl:message name="MultipleParametersAddItemRequestMessage">
+ <wsdl:part name="input" element="impl:MultipleParametersAddItemRequest"/>
+ </wsdl:message>
+ <wsdl:message name="MultipleParametersAddItemResponseMessage">
+ <wsdl:part name="output" element="impl:MultipleParametersAddItemResponse"/>
+ </wsdl:message>
+
+
+ <!-- Port type (operations) -->
+
+ <wsdl:portType name="Axis2UserGuidePortType">
+
+ <wsdl:operation name="DoInOnly" parameterOrder="input">
+ <wsdl:input name="DoInOnlyRequestMessage"
+ message="impl:DoInOnlyRequestMessage"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="TwoWayOneParameterEcho" parameterOrder="input">
+ <wsdl:input name="TwoWayOneParameterEchoRequestMessage"
+ message="impl:TwoWayOneParameterEchoRequestMessage"/>
+ <wsdl:output name="TwoWayOneParameterEchoResponseMessage"
+ message="impl:TwoWayOneParameterEchoResponseMessage"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="NoParameters" parameterOrder="input">
+ <wsdl:input name="NoParametersRequestMessage"
+ message="impl:NoParametersRequestMessage"/>
+ <wsdl:output name="NoParametersResponseMessage"
+ message="impl:NoParametersResponseMessage"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="MultipleParametersAddItem" parameterOrder="input">
+ <wsdl:input name="MultipleParametersAddItemRequestMessage"
+ message="impl:MultipleParametersAddItemRequestMessage"/>
+ <wsdl:output name="MultipleParametersAddItemResponseMessage"
+ message="impl:MultipleParametersAddItemResponseMessage"/>
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+
+ <!-- BINDING (bind operations) -->
+ <wsdl:binding
+ name="Axis2UserGuideSoapBinding"
+ type="impl:Axis2UserGuidePortType">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="DoInOnly">
+ <wsdlsoap:operation soapAction="DoInOnly"/>
+ <wsdl:input>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ </wsdl:operation>
+
+ <wsdl:operation name="TwoWayOneParameterEcho">
+ <wsdlsoap:operation soapAction="TwoWayOneParameterEcho"/>
+ <wsdl:input>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="NoParameters">
+ <wsdlsoap:operation soapAction="NoParameters"/>
+ <wsdl:input>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="MultipleParametersAddItem">
+ <wsdlsoap:operation soapAction="MultipleParametersAddItem"/>
+ <wsdl:input>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+
+ <!-- SERVICE -->
+
+ <wsdl:service name="Axis2UserGuideService">
+ <wsdl:port binding="impl:Axis2UserGuideSoapBinding"
+ name="Axis2UserGuide">
+ <wsdlsoap:address location="http://localhost:8080/axis2/services/Axis2UserGuide"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions></pre>
+
+<p>Notice 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>
+
+<p><b>The short story:</b></p>
+<ol>
+ <li>If you have not done it already, <a
+ href="http://ws.apache.org/axis2/download/1_1/download.cgi#std-bin">download</a>
+ and unpack the Apache Axis2 Standard Distribution.</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: ant jar.client.</li>
+ <li>Make sure all of the jar files in the Axis2 lib directory are on 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 typing:
+ <pre>java org.apache.axis2.axis2userguide.Client</pre>
+ </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/1_1/download.cgi#std-bin">download</a>
+and unpack the Apache Axis2 Standard Distribution. 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 of 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: 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, 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 of 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.xhtml">Building Services</a>
+document -- you can run the client by adding the two jar files to your
+classpath and typing: java org.apache.axis2.axis2userguide.Client</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>
Modified: webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients.html?view=diff&rev=488922&r1=488921&r2=488922
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/userguide-creatingclients.html Tue Dec 19 21:28:45 2006
@@ -1,237 +1,233 @@
-<?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>Apache Axis2 User's Guide- Creating Clients</title>
-</head>
-
-<body>
-<a name="createclients"></a>
-
-<h1>Apache Axis2 User's Guide</h1>
-
-<h1>- 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
-in 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 certainly usable, is not as straightforward as
-ADB.</p>
-
-<p>JiBX: JiBX is a full 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>Notice 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/1_1/download.cgi#std-bin"If
- you have not done it already, <a href="">download</a> and unpack the
- Apache Axis2 Standard Distribution.</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 typing:
- <pre>java org.apache.axis2.axis2userguide.Client</pre>
- </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/1_1/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 functionality for the
-services are contained a single class called a stub. The stub contains inner
-classes corresponding to all of 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 a 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>Notice 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
-the raw classes.</p>
-
-<p>Make sure all of 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 jar file to your classpath
-and typing: java org.apache.axis2.axis2userguide.Client</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/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 Next Section</strong> -<a
-href="userguide-buildingservices.html#buildservices">Building Services</a></p>
-</body>
-</html>
+<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
+in 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 certainly usable, is not as straightforward as
+ADB.</p>
+
+<p>JiBX: JiBX is a full 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>Notice 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/1_1/download.cgi#std-bin"If
+ you have not done it already, <a href="">download</a> and unpack the
+ Apache Axis2 Standard Distribution.</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 typing:
+ <pre>java org.apache.axis2.axis2userguide.Client</pre>
+ </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/1_1/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 functionality for the
+services are contained a single class called a stub. The stub contains inner
+classes corresponding to all of 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 a 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>Notice 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
+the raw classes.</p>
+
+<p>Make sure all of 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 jar file to your classpath
+and typing: java org.apache.axis2.axis2userguide.Client</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/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 Next Section</strong> -<a
+href="userguide-buildingservices.html#buildservices">Building Services</a></p>
+</body>
+</html>
Modified: webservices/axis2/trunk/java/xdocs/1_1/userguide-forfurtherstudy.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/userguide-forfurtherstudy.html?view=diff&rev=488922&r1=488921&r2=488922
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/userguide-forfurtherstudy.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/userguide-forfurtherstudy.html Tue Dec 19 21:28:45 2006
@@ -1,81 +1,80 @@
-<?xml version="1.0" encoding=""?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<html lang="en">
<head>
- <meta http-equiv="content-type" content="" />
+ <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</h1>
-
-<h1>-For Further Study</h1>
+<h1>Apache Axis2 User's Guide - For Further Study</h1>
<!--<h2>Content</h2>
<ul>
- <li><a href="userguide.html#intro">Introducing Axis2</a><br />
+<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.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>
+<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>
Modified: webservices/axis2/trunk/java/xdocs/1_1/userguide-installingtesting.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/userguide-installingtesting.html?view=diff&rev=488922&r1=488921&r2=488922
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/userguide-installingtesting.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/userguide-installingtesting.html Tue Dec 19 21:28:45 2006
@@ -1,16 +1,15 @@
-<?xml version="1.0" encoding=""?>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<html lang="en">
<head>
- <meta http-equiv="content-type" content="" />
+ <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 xml:lang="en" lang="en">
+<body lang="en">
<a name="installingtesting"></a>
-<h1>Apache Axis2 User's Guide</h1>
-
-<h1>-Installing and Testing Client Code</h1>
+<h1>Apache Axis2 User's Guide - Installing and Testing Client Code</h1>
<p>The best way to make sure that your system is running Axis2 is to install
and test both a service and a client. The process involves the following
@@ -18,7 +17,7 @@
<h2>Content</h2>
<ul>
- <li><a href="userguide-intro.html#intro">Introducing Axis2</a><br />
+ <li><a href="userguide-intro.html#intro">Introducing Axis2</a><br>
<ul>
<li><a href="userguide.html#whatis">What is Axis2</a></li>
@@ -38,7 +37,7 @@
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 />
+ Services</a><br>
<ul>
<li><a href="userguide-introtoservices.html#messageexchange">Message
@@ -46,7 +45,7 @@
</ul>
</li>
<li><a href="userguide-creatingclients.html#createclients">Creating
- Clients</a><br />
+ Clients</a><br>
<ul>
<li><a href="userguide-creatingclients.html#choosingclient">Choosing a
@@ -58,7 +57,7 @@
</ul>
</li>
<li><a href="userguide-buildingservices.html#buildservices">Building
- Services</a><br />
+ Services</a><br>
<ul>
<li><a href="userguide-buildingservices.html#getcomfortable">Getting
Modified: webservices/axis2/trunk/java/xdocs/1_1/userguide-introtoservices.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/xdocs/1_1/userguide-introtoservices.html?view=diff&rev=488922&r1=488921&r2=488922
==============================================================================
--- webservices/axis2/trunk/java/xdocs/1_1/userguide-introtoservices.html (original)
+++ webservices/axis2/trunk/java/xdocs/1_1/userguide-introtoservices.html Tue Dec 19 21:28:45 2006
@@ -1,168 +1,164 @@
-<?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>Apache Axis2 User's Guide- Introduction to Services</title>
-</head>
-
-<body>
-<a name="introservices"></a>
-
-<h1>Apache Axis2 User's Guide</h1>
-
-<h1>-Introduction to Services</h1>
-
-<p>The term "Web services" can apply to a number of different ways to send
-information back and forth, but 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 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><?xml version='1.0' ?>
-<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
-xmlns:wsa="http://www.w3.org/2005/03/addressing">
- <env:Header>
-
- <wsa:MessageID>
- http://ws.apache.org/9C21DE32-DB42-1228-C42E-66CB101421AD
- </wsa:MessageID>
- <wsa:ReplyTo>
- <wsa:Address>http://example.com/projects/clientApp</wsa:Address>
- </wsa:ReplyTo>
-
-<wsa:To>http://example.com/axis2/publishingService</wsa:To>
-
-<wsa:Action>http://example.com/axis2/addDocument</wsa:Action>
-
-</env:Header>
- <env:Body>
-
- <addDocument>
- <docTitle>What I Did On My Summer Vacation</doctitle>
- <docSubtitle>Children's Essays from Accross the World</docSubtitle>
- <docLocation>contentRepos/summerVac.doc</docLocation>
- </addDocument>
-
- </env:Body>
-</env:Envelope></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 third and arguably 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 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 use
-them 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, in
- 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 which
- acknowledgment is important.</li>
- <li>In-Only: In this MEP, the client sends a message to the server without
- the expectation of receiving a response. You may use this MEP for
- activities such as pinging a server to wake it up, reporting logging
- information for which you need no 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 then move on, 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
- require no 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 of 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. 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>
+<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 to send
+information back and forth, but 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 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><?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+xmlns:wsa="http://www.w3.org/2005/03/addressing">
+ <env:Header>
+
+ <wsa:MessageID>
+ http://ws.apache.org/9C21DE32-DB42-1228-C42E-66CB101421AD
+ </wsa:MessageID>
+ <wsa:ReplyTo>
+ <wsa:Address>http://example.com/projects/clientApp</wsa:Address>
+ </wsa:ReplyTo>
+
+<wsa:To>http://example.com/axis2/publishingService</wsa:To>
+
+<wsa:Action>http://example.com/axis2/addDocument</wsa:Action>
+
+</env:Header>
+ <env:Body>
+
+ <addDocument>
+ <docTitle>What I Did On My Summer Vacation</doctitle>
+ <docSubtitle>Children's Essays from Accross the World</docSubtitle>
+ <docLocation>contentRepos/summerVac.doc</docLocation>
+ </addDocument>
+
+ </env:Body>
+</env:Envelope></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 third and arguably 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 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 use
+them 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, in
+ 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 which
+ acknowledgment is important.</li>
+ <li>In-Only: In this MEP, the client sends a message to the server without
+ the expectation of receiving a response. You may use this MEP for
+ activities such as pinging a server to wake it up, reporting logging
+ information for which you need no 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 then move on, 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
+ require no 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 of 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. 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>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org