<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="copyright" content="Copyright (c) 2000, 2008 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: IBM Corporation - initial API and implementation" />
<meta name="DC.rights.owner" content="(C) Copyright 2000, 2008" />
<meta content="public" name="security" />
<meta content="index,follow" name="Robots" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta content="task" name="DC.Type" />
<meta name="DC.Title" content="Creating a Web service from a Java bean using the Apache Axis2 run-time environment" />
<meta name="abstract" content="The Web Service wizard assists you in creating a new Web service, configuring it for deployment, and deploying the Web service to a server. Once your Web service is deployed, the wizard assists you in generating the client proxy and sample application to test the Web service. When you have completed testing, you can publish your Web service to a UDDI Business Registry using the Export wizard." />
<meta name="description" content="The Web Service wizard assists you in creating a new Web service, configuring it for deployment, and deploying the Web service to a server. Once your Web service is deployed, the wizard assists you in generating the client proxy and sample application to test the Web service. When you have completed testing, you can publish your Web service to a UDDI Business Registry using the Export wizard." />
<meta content="Axis2 runtime environment, Web services, Java beans, Axis2 runtime environment, creating a Web service" name="DC.subject" />
<meta content="Axis2 runtime environment, Web services, Java beans, Axis2 runtime environment, creating a Web service" name="keywords" />
<meta scheme="URI" name="DC.Relation" content="../../org.eclipse.jst.ws.doc.user/concepts/cwsinwsa.html" />
<meta scheme="URI" name="DC.Relation" content="../../org.eclipse.jst.ws.doc.user/concepts/cws.html" />
<meta scheme="URI" name="DC.Relation" content="../../org.eclipse.jst.ws.doc.user/tasks/toverws.html" />
<meta scheme="URI" name="DC.Relation" content="../../org.eclipse.jst.ws.consumption.ui.doc.user/tasks/tuddiexp.html" />
<meta content="XHTML" name="DC.Format" />
<meta content="twsbeana" name="DC.Identifier" />
<meta content="en-us" name="DC.Language" />
<link href="../../org.eclipse.wst.doc.user/common.css" type="text/css" rel="stylesheet" />
<title>Creating a Web service from a Java bean using the Apache Axis2
run-time environment</title>
</head>
<body id="twsbeana"><a name="twsbeana"><!-- --></a>


<h1 class="topictitle1">Creating a Web service from a Java bean using the Apache Axis2 run-time
environment</h1>




<div><p>The Web Service wizard assists you in creating a new Web service,
configuring it for deployment, and deploying the Web service to a server.
Once your Web service is deployed, the wizard assists you in generating the
client proxy and sample application to test the Web service. When you have
completed testing, you can publish your Web service to a UDDI Business Registry
using the Export wizard.</p>

<div class="p"><div class="p">Prerequisites:<ol>
<li id="twsbeana__installaxis2link"><a name="twsbeana__installaxis2link"><!-- --></a>You must have installed the Apache Axis2 runtime
environment as described in: <a href="caxistover.html" title="These runtime environments are for users who prefer to develop&#10;for the open Apache Axis platform. Both Axis1 and Axis2 are supported by the&#10;Web services tools.">Creating Web services with the Apache Axis runtime environments</a></li>

<li id="twsbeana__createtomcatlink"><a name="twsbeana__createtomcatlink"><!-- --></a>If you are using the Apache Jakarta Tomcat servlet
container as your server, you must install it, configure an instance of it,
and create a Web project targeted to it as described in: <a href="ttomcatserv.html">Creating an Apache Tomcat server and Web project</a></li>
<anchor id="additional_servers_for_axis2"/>
<li>Create or import a bean into the Java™ source folder of the Web project. To
import, select the <strong>Java Resources: src</strong> folder, and from
the file menu select <span class="menucascade"><span class="uicontrol">Import</span> &gt; <span class="uicontrol">General</span>
 &gt; <span class="uicontrol">File System</span></span> and browse to where your
package is.</li>

</ol>
</div>
</div>

<div class="section">To create a Web service from a bean using the Apache Axis2 runtime
environment:</div>

<ol>
<li class="stepexpand"><span>Switch to the J2EE perspective (<span class="uicontrol">Window &gt; Open Perspective
&gt; J2EE</span>).</span></li>

<li class="stepexpand"><span>In the Project Explorer view, select the bean that you created
or imported into the source folder of your Web project.</span></li>

<li class="stepexpand"><span>Click  <span class="uicontrol">File &gt; New &gt; Other</span>.</span> Select<span class="uicontrol">Web
Services</span> in order to display the various Web service wizards.
Select the  <span class="uicontrol">Web Service</span> wizard. Click  <span class="uicontrol">Next</span>.
</li>

<li class="stepexpand"><span>Web Services page: select  <span class="uicontrol">Bottom up Java bean Web service</span> as
your Web service type, and select the Java bean from which the service will be
created.</span>
<a name="twsbeana__createstep4ul"><!-- --></a><ol type="a" id="twsbeana__createstep4ul">
<li class="substepexpand"><span>Select the stages of Web services development that you want
to complete using the slider:</span> <ul>
<li>Develop: this will develop the WSDL definition and implementation of the
Web service. This includes such tasks as creating the modules which will contain
the generated code, WSDL files, deployment descriptors, and Java files
when appropriate.</li>

<li>Assemble: this ensures the project that will host the Web service or client
gets associated to an EAR when required by the target application server.</li>

<li>Deploy: this will create the deployment code for the service.</li>

<li>Install: this will install and configure the Web module and EARs on the
target server.</li>

<li>Start: this will start the server once the service has been installed
on it. The server-config.wsdd file will be generated.</li>

<li>Test: this will provide various options for testing the service, such
as using the Web Service Explorer or sample JSPs.</li>

</ul>
</li>

<li class="substepexpand"><span>Select your server: the default server is displayed. If you
want to deploy your service to a different server click the link to specify
a different server.</span></li>

<li class="substepexpand"><span>Select your runtime: ensure the Apache Axis2 runtime is selected.</span>
</li>

<li class="substepexpand"><span>Select the service project: the project selected in your workspace
is displayed. To select a different project click on the project link. If
you are deploying to WebSphere<sup>®</sup> Application Server you will also be asked
to select the EAR associated with the project.</span> Ensure that the
project selected as the Client Web Project is different from the Service Web
Project, or the service will be overwritten by the client's generated artifacts.
</li>

<li class="substepexpand"><span>If you want to create a client, select the type of proxy to
be generated and repeat the above steps for the client.</span></li>

<li class="substepexpand"><span>Publish the Web service: this will launch the Web Services Explorer
to publish your Web service to a UDDI registry.</span></li>

<li class="substepexpand"><span>Monitor the Web service: this will send the Web service traffic
through the TCP/IP Monitor, which allows you to watch the SOAP traffic generated
by the Web service and to test this traffic for WS-I compliance. Alternately
you can manually set up a TCP/IP monitor as described in <a href="../../org.eclipse.wst.wsi.ui.doc.user/tasks/tmonitor.html">Using the TCP/IP Monitor to test Web services</a></span></li>

</ol>

</li>

<li class="stepexpand"><span>Axis2 Web Service Java Bean Configuration page: If you have
a custom services.xml file you can point to it on this page, or you can have
the wizard create a default services.xml file for you.</span></li>

<li class="stepexpand"><span>Web Service Test page: If you selected to test the Web service,
select the test facility for the generated Web service.</span> This will
open the Web service in the Web Services Explorer. Select the operation you
want to test, enter the required information, and click<span class="uicontrol">Go</span>.
The result will display in the Status pane. Click  <span class="uicontrol">Next</span>.
</li>

<li class="stepexpand" id="twsbeana__axis2clientpagelink"><a name="twsbeana__axis2clientpagelink"><!-- --></a><span>Axis2 Client Web service configuration
page: Use this page to select the following options: </span>
<ol type="a">
<li><span>Service Name: accept the default.</span></li>

<li><span>Port Name: accept the default.</span></li>

<li><span>Databinding Name: only the Axis2 Databinding Framework (ADB)
is supported at this time.</span></li>

<li><span>Custom package name: You can change the package name in this
field.</span></li>

<li><span>Client mode: You can choose if the client is synchronous, asynchronous,
or both.</span></li>

<li><span>Generate test case to test the service: If you select this,
the Axis2 emitter will generate JUnit testcases matching the WSDL provided
to the client. These JUnit testcases will be generated to a newly added source
directory to the client project called <span class="uicontrol">test</span>. </span>
</li>

<li><span>Generate all types for all elements referred by schemas</span>
</li>

<li><span>Namespace to package mapping: Use this table to review or edit
the mappings between packages and namespaces.</span></li>

</ol>

</li>

<li class="stepexpand"><span>Web Service Client Test page: Use this page to select the following
options: </span>
<ol type="a">
<li><span>Select your test facility. You can test the generated proxy
in the Web Service Explorer, or the Universal Test Client.</span></li>

<li><span>Select  <span class="uicontrol">Run test on server</span> to start the
server for you automatically.</span></li>

</ol>

</li>

<li class="stepexpand"><span>Web Service Publication page: Select whether or not you want to
publish this Web service to a UDDI registry. Click <span class="uicontrol">Finish</span>.</span>
</li>

</ol>

<div class="section" id="twsbeana__axiswscreateresult"><a name="twsbeana__axiswscreateresult"><!-- --></a><div class="p">After the Web service has been created,
the following may occur depending on the options you selected: <ul>
<li>If you have selected to test the Web service using the Web Services Explorer,
the Explorer will open. Select the operation you want to test, enter the required
information, and click  <strong>Go</strong>. The result will display in the Status pane.</li>

<li>If you have selected to publish the Web service, the Web Services Explorer
is launched displaying the page required to publish your Web service. Follow
the instructions in  <var class="varname">Publishing the Web service</var> to complete
this task.</li>

</ul>
</div>
</div>

<div class="section"><p> <span class="uicontrol">Important:</span> If your methods contain types,
not supported by the sample, such as arrays, indexed properties, and collections,
the methods will be omitted from the sample and you will receive a warning
message.</p>
</div>

</div>

<div>
<div class="linklist"><strong>Related Concepts</strong><br />

<div><a href="../../org.eclipse.jst.ws.doc.user/concepts/cwsinwsa.html"> Tools for Web services development</a></div>
<div><a href="../../org.eclipse.jst.ws.doc.user/concepts/cws.html">Web services development</a></div></div>

<div class="linklist"><strong>Related Tasks</strong><br />

<div><a href="../../org.eclipse.jst.ws.doc.user/tasks/toverws.html"> Developing Web services</a></div>
<div><a href="../../org.eclipse.jst.ws.consumption.ui.doc.user/tasks/tuddiexp.html"> Using the Web Services Explorer</a></div></div>
</div>

</body>
</html>