blob: e34aec837ad58419a9785e460328572347c3c060 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2022-06-07
| Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20220607" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Axis2 &#x2013; Generating a Web Service Client using Axis2 and
XmlBeans</title>
<link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
<link rel="stylesheet" href="../css/site.css" />
<link rel="stylesheet" href="../css/print.css" media="print" />
<script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
<meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="" /> </head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2"/></a></div>
<div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2022-06-07<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.8.1<span class="divider">|</span></li>
<li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
<li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
<li class="active ">Generating a Web Service Client using Axis2 and
XmlBeans</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Axis2/Java</li>
<li><a href="../index.html" title="Home"><span class="none"></span>Home</a> </li>
<li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a> </li>
<li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
<ul class="nav nav-list">
<li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a> </li>
<li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a> </li>
<li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a> </li>
<li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a> </li>
<li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a> </li>
<li><a href="../release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a> </li>
<li><a href="../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a> </li>
<li><a href="../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a> </li>
<li><a href="../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a> </li>
<li><a href="../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a> </li>
<li><a href="../release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a> </li>
<li><a href="../release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a> </li>
<li><a href="../release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a> </li>
<li><a href="../release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</a> </li>
<li><a href="../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a> </li>
<li><a href="../release-notes/1.8.1.html" title="1.8.1"><span class="none"></span>1.8.1</a> </li>
</ul>
</li>
<li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a> </li>
<li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a> </li>
<li class="nav-header">Documentation</li>
<li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a> </li>
<li><a href="../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li>
<li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a> </li>
<li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a> </li>
<li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a> </li>
<li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a> </li>
<li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a> </li>
<li><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a> </li>
<li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a> </li>
<li class="nav-header">Resources</li>
<li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li>
<li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a> </li>
<li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a> </li>
<li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a> </li>
<li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a> </li>
<li class="nav-header">Get Involved</li>
<li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a> </li>
<li><a href="../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a> </li>
<li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li>
<li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li>
<li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a> </li>
<li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a> </li>
<li class="nav-header">Project Information</li>
<li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li>
<li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li>
<li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a> </li>
<li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a> </li>
<li class="nav-header">Apache</li>
<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a> </li>
<li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li>
<li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li>
<li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
</div>
</div>
</div>
<div id="bodyColumn" class="span10" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<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>
<div>
<pre>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;wsdl:definitions
xmlns:apachesoap=&quot;http://xml.apache.org/xml-soap&quot;
xmlns:impl=&quot;http://apache.org/axis2/Axis2UserGuide&quot;
xmlns:intf=&quot;http://apache.org/axis2/Axis2UserGuide&quot;
xmlns:wsdl=&quot;http://schemas.xmlsoap.org/wsdl/&quot;
xmlns:wsdlsoap=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot;
xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
targetNamespace=&quot;http://apache.org/axis2/Axis2UserGuide&quot;&gt;
&lt;wsdl:types&gt;
&lt;schema
elementFormDefault=&quot;qualified&quot;
targetNamespace=&quot;http://apache.org/axis2/Axis2UserGuide&quot;
xmlns=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;!-- ELEMENTS --&gt;
&lt;element name=&quot;DoInOnlyRequest&quot;&gt;
&lt;complexType&gt;
&lt;sequence&gt;
&lt;element name=&quot;messageString&quot; type=&quot;xsd:string&quot;/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;/element&gt;
&lt;element name=&quot;TwoWayOneParameterEchoRequest&quot;&gt;
&lt;complexType&gt;
&lt;sequence&gt;
&lt;element name=&quot;echoString&quot; type=&quot;xsd:string&quot;/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;/element&gt;
&lt;element name=&quot;TwoWayOneParameterEchoResponse&quot;&gt;
&lt;complexType&gt;
&lt;sequence&gt;
&lt;element name=&quot;echoString&quot; type=&quot;xsd:string&quot;/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;/element&gt;
&lt;element name=&quot;NoParametersRequest&quot;&gt;
&lt;complexType/&gt;
&lt;/element&gt;
&lt;element name=&quot;NoParametersResponse&quot;&gt;
&lt;complexType/&gt;
&lt;/element&gt;
&lt;element name=&quot;MultipleParametersAddItemRequest&quot;&gt;
&lt;complexType&gt;
&lt;sequence&gt;
&lt;element name=&quot;itemId&quot; type=&quot;xsd:int&quot;/&gt;
&lt;element name=&quot;itemName&quot; type=&quot;xsd:string&quot;/&gt;
&lt;element name=&quot;price&quot; type=&quot;xsd:float&quot;/&gt;
&lt;element name=&quot;description&quot; type=&quot;xsd:string&quot;/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;/element&gt;
&lt;element name=&quot;MultipleParametersAddItemResponse&quot;&gt;
&lt;complexType&gt;
&lt;sequence&gt;
&lt;element name=&quot;itemId&quot; type=&quot;xsd:int&quot;/&gt;
&lt;element name=&quot;successfulAdd&quot; type=&quot;xsd:boolean&quot;/&gt;
&lt;/sequence&gt;
&lt;/complexType&gt;
&lt;/element&gt;
&lt;/schema&gt;
&lt;/wsdl:types&gt;
&lt;!-- MESSAGES --&gt;
&lt;wsdl:message name=&quot;DoInOnlyRequestMessage&quot;&gt;
&lt;wsdl:part name=&quot;input&quot; element=&quot;impl:DoInOnlyRequest&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name=&quot;TwoWayOneParameterEchoRequestMessage&quot;&gt;
&lt;wsdl:part name=&quot;input&quot; element=&quot;impl:TwoWayOneParameterEchoRequest&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name=&quot;TwoWayOneParameterEchoResponseMessage&quot;&gt;
&lt;wsdl:part name=&quot;output&quot; element=&quot;impl:TwoWayOneParameterEchoResponse&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name=&quot;NoParametersRequestMessage&quot;&gt;
&lt;wsdl:part name=&quot;input&quot; element=&quot;impl:NoParametersRequest&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name=&quot;NoParametersResponseMessage&quot;&gt;
&lt;wsdl:part name=&quot;output&quot; element=&quot;impl:NoParametersResponse&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name=&quot;MultipleParametersAddItemRequestMessage&quot;&gt;
&lt;wsdl:part name=&quot;input&quot; element=&quot;impl:MultipleParametersAddItemRequest&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name=&quot;MultipleParametersAddItemResponseMessage&quot;&gt;
&lt;wsdl:part name=&quot;output&quot; element=&quot;impl:MultipleParametersAddItemResponse&quot;/&gt;
&lt;/wsdl:message&gt;
&lt;!-- Port type (operations) --&gt;
&lt;wsdl:portType name=&quot;Axis2UserGuidePortType&quot;&gt;
&lt;wsdl:operation name=&quot;DoInOnly&quot; parameterOrder=&quot;input&quot;&gt;
&lt;wsdl:input name=&quot;DoInOnlyRequestMessage&quot;
message=&quot;impl:DoInOnlyRequestMessage&quot;/&gt;
&lt;/wsdl:operation&gt;
&lt;wsdl:operation name=&quot;TwoWayOneParameterEcho&quot; parameterOrder=&quot;input&quot;&gt;
&lt;wsdl:input name=&quot;TwoWayOneParameterEchoRequestMessage&quot;
message=&quot;impl:TwoWayOneParameterEchoRequestMessage&quot;/&gt;
&lt;wsdl:output name=&quot;TwoWayOneParameterEchoResponseMessage&quot;
message=&quot;impl:TwoWayOneParameterEchoResponseMessage&quot;/&gt;
&lt;/wsdl:operation&gt;
&lt;wsdl:operation name=&quot;NoParameters&quot; parameterOrder=&quot;input&quot;&gt;
&lt;wsdl:input name=&quot;NoParametersRequestMessage&quot;
message=&quot;impl:NoParametersRequestMessage&quot;/&gt;
&lt;wsdl:output name=&quot;NoParametersResponseMessage&quot;
message=&quot;impl:NoParametersResponseMessage&quot;/&gt;
&lt;/wsdl:operation&gt;
&lt;wsdl:operation name=&quot;MultipleParametersAddItem&quot; parameterOrder=&quot;input&quot;&gt;
&lt;wsdl:input name=&quot;MultipleParametersAddItemRequestMessage&quot;
message=&quot;impl:MultipleParametersAddItemRequestMessage&quot;/&gt;
&lt;wsdl:output name=&quot;MultipleParametersAddItemResponseMessage&quot;
message=&quot;impl:MultipleParametersAddItemResponseMessage&quot;/&gt;
&lt;/wsdl:operation&gt;
&lt;/wsdl:portType&gt;
&lt;!-- BINDING (bind operations) --&gt;
&lt;wsdl:binding
name=&quot;Axis2UserGuideSoapBinding&quot;
type=&quot;impl:Axis2UserGuidePortType&quot;&gt;
&lt;wsdlsoap:binding style=&quot;document&quot; transport=&quot;http://schemas.xmlsoap.org/soap/http&quot;/&gt;
&lt;wsdl:operation name=&quot;DoInOnly&quot;&gt;
&lt;wsdlsoap:operation soapAction=&quot;DoInOnly&quot;/&gt;
&lt;wsdl:input&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:input&gt;
&lt;/wsdl:operation&gt;
&lt;wsdl:operation name=&quot;TwoWayOneParameterEcho&quot;&gt;
&lt;wsdlsoap:operation soapAction=&quot;TwoWayOneParameterEcho&quot;/&gt;
&lt;wsdl:input&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:input&gt;
&lt;wsdl:output&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:output&gt;
&lt;/wsdl:operation&gt;
&lt;wsdl:operation name=&quot;NoParameters&quot;&gt;
&lt;wsdlsoap:operation soapAction=&quot;NoParameters&quot;/&gt;
&lt;wsdl:input&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:input&gt;
&lt;wsdl:output&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:output&gt;
&lt;/wsdl:operation&gt;
&lt;wsdl:operation name=&quot;MultipleParametersAddItem&quot;&gt;
&lt;wsdlsoap:operation soapAction=&quot;MultipleParametersAddItem&quot;/&gt;
&lt;wsdl:input&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:input&gt;
&lt;wsdl:output&gt;
&lt;wsdlsoap:body use=&quot;literal&quot;/&gt;
&lt;/wsdl:output&gt;
&lt;/wsdl:operation&gt;
&lt;/wsdl:binding&gt;
&lt;!-- SERVICE --&gt;
&lt;wsdl:service name=&quot;Axis2UserGuideService&quot;&gt;
&lt;wsdl:port binding=&quot;impl:Axis2UserGuideSoapBinding&quot;
name=&quot;Axis2UserGuide&quot;&gt;
&lt;wsdlsoap:address location=&quot;http://localhost:8080/axis2/services/Axis2UserGuide&quot;/&gt;
&lt;/wsdl:port&gt;
&lt;/wsdl:service&gt;
&lt;/wsdl:definitions&gt;
</pre></div>
<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 class="externalLink" 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 style="list-style-type: decimal">
<li><a href="../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 />
<div>
<pre>
%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d xmlbeans -s
</pre></div></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="../download.cgi#std-bin">Download</a>
and unpack the Apache Axis2 Standard Distribution, if you have not
done so already. The <a href="../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>
<div>
<pre>
%AXIS2_HOME%\bin\WSDL2Java -uri Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d xmlbeans -s
</pre></div>
<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 class="externalLink" 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>
<div>
<pre>
package org.apache.axis2.axis2userguide;
public class Client{
public static void main(java.lang.String args[]){
try{
Axis2UserGuideServiceStub stub =
new Axis2UserGuideServiceStub
(&quot;http://localhost:8080/axis2/services/Axis2UserGuideService&quot;);
doInOnly(stub);
twoWayOneParameterEcho(stub);
noParameters(stub);
multipleParameters(stub);
} catch(Exception e){
e.printStackTrace();
System.out.println(&quot;\n\n\n&quot;);
}
}
/* fire and forget */
public static void doInOnly(Axis2UserGuideServiceStub stub){
try{
DoInOnlyRequestDocument req =
DoInOnlyRequestDocument.Factory.newInstance();
DoInOnlyRequestDocument.DoInOnlyRequest data =
req.addNewDoInOnlyRequest();
data.setMessageString(&quot;fire and forget it!&quot;);
stub.doInOnly(req);
System.out.println(&quot;done&quot;);
} catch(Exception e){
e.printStackTrace();
System.out.println(&quot;\n\n\n&quot;);
}
}
/* two way call/receive */
public static void twoWayOneParameterEcho(Axis2UserGuideServiceStub stub){
try{
TwoWayOneParameterEchoRequestDocument req =
TwoWayOneParameterEchoRequestDocument.Factory.newInstance();
TwoWayOneParameterEchoRequestDocument.TwoWayOneParameterEchoRequest data =
req.addNewTwoWayOneParameterEchoRequest();
data.setEchoString(&quot;echo! ... echo!&quot;);
TwoWayOneParameterEchoResponseDocument res =
stub.twoWayOneParameterEcho(req);
System.out.println(res.getTwoWayOneParameterEchoResponse().getEchoString());
} catch(Exception e){
e.printStackTrace();
System.out.println(&quot;\n\n\n&quot;);
}
}
/* 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(&quot;\n\n\n&quot;);
}
}
/* 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(&quot;Must have for cooking&quot;);
data.setItemName(&quot;flour&quot;);
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(&quot;\n\n\n&quot;);
}
}
}
</pre></div>
<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 src="images/fig04.jpg" alt="Response in a console window of your servlet container" /><br /></p>
</html>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright &copy;2004&#x2013;2022
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
</div>
</div>
</footer>
</body>
</html>