blob: f1f9fc4417b776e017c64ba24434455cf191ef0e [file] [log] [blame]
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
<title>Getting Started.html</title>
<link href="../theme/Master.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>
Web Services Tools Evaluation Guide</h1>
<h2>
<a NAME="intro"></a>1.0 Introduction</h2>
The Web Services Tools contribution provides an extensible framework of
wizards, actions, preferences, code generators and Web applications to
help Eclipse users create, publish, discover, consume and test Web Services
chiefly for, but not limited to, the Java programming language and the
J2EE platform. Included in the contribution are tools for building Apache
Axis Web services and Web service clients on Apache Tomcat.
<p>The design and capabilities of the tools, both internally and visually,
are anchored to a small but significant set of public specifications and
consortiums, including:
<ul>
<li>
<a href="http://www.w3c.org/XML/Schema">XML Schema 1.0</a>.</li>
<li>
<a href="http://www.w3c.org/TR/2000/NOTE-SOAP-20000508/">SOAP 1.1</a>.</li>
<li>
<a href="http://www.w3c.org/TR/wsdl">WSDL 1.1</a>.</li>
<li>
<a href="http://www.uddi.org/">UDDI v2</a>.</li>
<li>
<a href="http://www.ws-i.org/">WS-I</a>.</li>
<li>
<a href="http://www.jcp.org/en/jsr/detail?id=101">JSR-101</a>.</li>
<li>
<a href="http://www.jcp.org/en/jsr/detail?id=109">JSR-109</a>.</li>
<li>
<a href="http://java.sun.com/j2ee/index.jsp">J2EE 1.4</a>.</li>
<li>
<a href="http://ws.apache.org/axis/">Apache Axis</a>.</li>
<li>
<a href="http://jakarta.apache.org/tomcat/">Apache Tomcat</a>.</li>
</ul>
Included in the Web Services Tools contribution are:
<ul>
<li>
An embedded Web application for publishing, discovering and invoking Web
services.</li>
<li>
Extensible Wizards for creating Web Services from existing Java classes
(these are called "bottom up" scenarios).</li>
<li>
Extensible Wizards for creating Web services from existing WSDL (these
are called "top down" scenarios).</li>
<li>
Extensible Wizards for creating Web service clients from WSDL.</li>
<li>
Extensions in support of Apache Axis and Apache Tomcat.</li>
<li>
Wizards for integrating with public and private UDDI registries.</li>
<li>
Wizards for configuring Web service and Web service client JAX-RPC handlers.</li>
<li>
Popup actions.</li>
<li>
Web Service scenario preference pages.</li>
<li>
Internet proxy firewall preference page.</li>
<li>
The Environment Command Framework, used to organize UI-agnostic engine
code into dynamic trees of executable commands.</li>
<li>
The Dynamic Wizard Framework, used to build wizards with highly dynamic
page flows.</li>
<li>
Models, parsers and code generators.</li>
</ul>
<b>Note:</b> The <a href="J2EEToolsEval.html">J2EE Tools</a> and <a href="XMLToolsEval.html">XML
Tools</a> contributions also contain tools for Web services, such as the
WSDL Editor, the WSDL and WS-I validators, and the J2EE Project Explorer.
<h2>
<a NAME="getstart"></a>2.0 Getting Started</h2>
Of all the Web services tools included in this contribution, three of them
stand out as the primary means to developing and working with Web services:
<ul>
<li>
The <b>Web Services Explorer</b> for publishing, discovering and invoking
Web services.</li>
<li>
The <b>Web Service</b> wizard for creating new Web services bottom-up from
Java or top-down from WSDL.</li>
<li>
The <b>Web Service Client</b> wizard for creating Web service client proxies
and sample JSP clients from WSDL.</li>
</ul>
If you have a connection to the internet, then the easiest way to get started
with the tools and learn a bit about Web services is to run the Web Services
Explorer and play with some Web services on the internet. You don't need
anything in your workspace, and you don't need any installed servers. Follow
the instructions in <a href="#tour-wse">Chapter 3.1</a> to use the Web
Services Explorer to invoke an operation on a Web service available via
<a href="http://www.xmethods.net">XMethods</a>.
<p>If you do not have a connection to the internet, then the next easiest
way to get started is to create your own Web service. The Web Service wizard
will help you do this, however, there are a couple of prerequisites. First,
you will need to download a version of <a href="http://jakarta.apache.org/tomcat/">Apache
Tomcat</a> and install it into Eclipse WTP using the Installed Runtimes
preference page. Second, you will need to create a Web project and create
a basic Java class within it. Follow the instructions in <a href="#tour-bu">Chapter
3.2</a> to create a Web service and Web service client bottom-up from a
simple Java class.
<h2>
<a NAME="tour"></a>3.0 Quick Tour</h2>
The following chapters will guide you through a few of the more prominent
tools in this contribution:
<ol>
<li>
<a href="#tour-wse">Using the Web Services Explorer to test a Web service</a></li>
<li>
<a href="#tour-bu">Using the Web Service wizard to build a Web service
bottom-up from Java</a></li>
<li>
<a href="#tour-prefs">Exploring the Preferences</a></li>
<li>
<a href="#tour-wizards">Exploring the Wizards</a></li>
<li>
<a href="#tour-popups">Exploring the Popup Actions</a></li>
<li>
<a href="#tour-frameworks">Behind the Scenes</a></li>
</ol>
<h3>
<a NAME="tour-wse"></a>3.1 Using the Web Services Explorer to test a Web
service</h3>
This scenario is very simple. It demonstrates how to use the Web Services
Explorer to invoke operations on a Web service named "<a href="http://www.xmethods.net/ve2/ViewListing.po;jsessionid=TZdF2D6E_KB9KKIY5_DG4FJw(QHyMHiRM)?key=uuid:477CEED8-1EDD-89FA-1070-6C2DBE1685F8">Temperature
- Weather</a>" as available from <a href="http://www.xmethods.net/">XMethods</a>
on the internet. The only prerequisite is that you be connected to the
internet. If you are connected via a firewall, you can use the Internet
preferences page (choose <b>Preferences -> Internet</b> from the main menu).
Other than that, you can begin with a completely fresh workspace and no
installed servers.
<ol>
<li>
Launch the Eclipse WTP workbench.</li>
<li>
From the main menu bar, select <b>Run -> Launch the Web Services Explorer</b>.
This will take a few moments the first time while Eclipse's internal Tomcat
server starts up and loads the Web Services Explorer application. After
the Web Browser view opens, maximize it. Result:</li>
<br><img SRC="WebServicesToolsEval_files/image0BJ.JPG" NOSAVE height=544 width=738>
<li>
In the Web Service Explorer's toolbar (top-right), click on the <b>WSDL
Page</b> icon,&nbsp;<img SRC="WebServicesToolsEval_files/wsdl.gif" NOSAVE height=16 width=16>.
Result:</li>
<br><img SRC="WebServicesToolsEval_files/image7DI.JPG" NOSAVE height=544 width=738>
<li>
Click on&nbsp;<img SRC="WebServicesToolsEval_files/wsdl_main.gif" NOSAVE height=16 width=16><b>WSDL
Main</b>. Result:</li>
<br><img SRC="WebServicesToolsEval_files/imageN5S.JPG" NOSAVE height=544 width=738>
<li>
In the <b>WSDL URL</b> field, enter the URL <tt>http://www.xmethods.net/sd/2001/TemperatureService.wsdl</tt>,
then click on <b>Go</b>. Result:</li>
<br><img SRC="WebServicesToolsEval_files/imagePK7.JPG" NOSAVE height=544 width=738>
<li>
Under <b>Operations</b> in the right hand pane, click on <b>getTemp</b>.
Result:</li>
<br><img SRC="WebServicesToolsEval_files/image9TE.JPG" NOSAVE height=544 width=738>
<li>
In the <b>zipcode string</b> entry field, enter <tt>90210</tt>, then click
on <b>Go</b>. In the <b>Status</b> pane, you should see an answer like
this:</li>
<br><b>return (float): 67.0</b>
<br>You may need to move the horizontal bar separating the <b>Actions</b>
and <b>Status</b> panes upwards a bit to get a better view. Result:<img SRC="WebServicesToolsEval_files/imageTVQ.JPG" NOSAVE BORDER=0 height=544 width=738></ol>
<b>Explanation</b>
<p>The Web Services Explorer is a JSP Web application hosted on the Apache
Tomcat servlet engine contained within Eclipse. It is integrated into Eclipse
on two levels: visually by virtue of it running in the embedded browser,
and logically by virtue of it running as a thread in the Eclipse JRE. Though
not demonstrated in this scenario, this latter type of integration allows
the Web Services Explorer to access resources in the workspace, write resources
into the workspace, and launch various Web services wizards.
<p>The Web Services Explorer provides three key services to the user:
<ol>
<li>
Comprehensive support for discovering Web services in WS-Inspection 1.0
documents, and in UDDI v2 or v3 registries using the UDDI v2 protocol.</li>
<li>
Comprehensive support for publishing Web services to UDDI v2 or v3 registries
using the UDDI v2 protocol.</li>
<li>
Comprehensive support for browsing and invoking Web services natively<b>*</b>
via their WSDL and XSD.</li>
</ol>
<b>*</b> A key point of the scenario above is that no code was generated
and no servers were required in order to invoke operations on the WSDL.
<h3>
<a NAME="tour-bu"></a>3.2 Using the Web Service wizard to build a Web service
bottom-up from Java</h3>
This scenario shows how to create a simple Web service and Web service
client from a Java class. The Java class in this scenario converts between
the Celsius and Farenheit temperature scales. Before creating the Web service,
there are three prerequisites:
<ol>
<li>
<a href="#tour-bu-prereqtomcat">Install Apache Tomcat</a></li>
<li>
<a href="#tour-bu-prereqwsi">Turn off WS-I compliance checking</a></li>
<li>
<a href="#tour-bu-prereqweb">Create a Web project</a></li>
</ol>
If you have completed these prerequisites, carry on with the scenario at
chapter <a href="#tour-bu-main">3.2.4</a>.
<h4>
<a NAME="tour-bu-prereqtomcat"></a>3.2.1 Install Apache Tomcat</h4>
<ol>
<li>
Download and unzip <a href="http://jakarta.apache.org/tomcat/">Apache Tomcat</a>
(this scenario was written using Apache Tomcat version 4.1.30, but other
versions can be substituted).</li>
<li>
Start the Eclipse WTP workbench.</li>
<li>
Open <b>Window -> Preferences -> Server -> Installed Runtimes</b> to create
a Tomcat installed runtime.</li>
<br><img SRC="WebServicesToolsEval_files/imageOJG.JPG" NOSAVE height=532 width=634>
<li>
Click on <b>Add...</b> to open the <b>New Server Runtime</b> dialog, then
select your runtime under <b>Apache</b> (Apache Tomcat v4.1 in this example):</li>
<br><img SRC="WebServicesToolsEval_files/imageD3M.JPG" NOSAVE height=415 width=438>
<li>
Click <b>Next</b>, and fill in your <b>Tomcat installation directory</b>:</li>
<br><img SRC="WebServicesToolsEval_files/image849.JPG" NOSAVE height=415 width=438>
<li>
Ensure the selected <b>JRE</b> is a full JDK and is of a version that will
satisfy Apache Tomcat (this scenario was written using SUN JDK 1.4.2_05).
If necessary, you can click on <b>Installed JREs...</b> to add JDKs to
Eclipse.</li>
<li>
Click <b>Finish</b>.</li>
</ol>
<b>Note:</b> Further details on installing and using servers can be found
in the <a href="ServerToolsEval.html">Server Tools</a> contribution.
<h4>
<a NAME="tour-bu-prereqwsi"></a>3.2.2 Turn off WS-I compliance checking</h4>
<ol>
<li>
Open <b>Window -> Preferences -> Web Services -> WS-I Compliance</b>.</li>
<li>
Change both compliance levels from <b>Suggest compliance</b> to <b>Ignore
compliance</b> since Apache Axis 1.0 does not lend itself to WS-I compliant
Web services in general. Note that this prerequisite is not critical. If
you leave the compliance level set to <b>Suggest compliance</b>, then the
Web service wizards and the WSDL validator will simply produce warning
messages telling you that your Web service will not be, or is not, WS-I
compliant.</li>
<br><img SRC="WebServicesToolsEval_files/imageDQC.JPG" NOSAVE height=433 width=634>
<li>
Click <b>OK</b>.</li>
</ol>
<h4>
<a NAME="tour-bu-prereqweb"></a>3.2.3 Create a Web project</h4>
<ol>
<li>
Open <b>File -> New -> Other... -> Web -> Dynamic Web Project</b> to create
a new Web project named <tt>Converter</tt>.</li>
<li>
Enter <tt>Converter</tt> into the <b>Name</b> field.</li>
<li>
Choose a <b>Web version</b> of <b>2.3</b>.</li>
<li>
Choose a <b>Target server</b> of <b>Apache Tomcat v4.1</b>.</li>
<li>
Deselect <b>Add module to an EAR project</b>. Result:</li>
<br><img SRC="WebServicesToolsEval_files/imageNQC.JPG" NOSAVE height=497 width=503>
<li>
Click <b>Finish</b>.</li>
</ol>
<h4>
<a NAME="tour-bu-main"></a>3.2.4 Create a Web service and Web service client</h4>
<ol>
<li>
Import the <a href="WebServicesToolsEval_files/wtp/Converter.java">wtp/Converter.java</a>
class into Converter/JavaSource (be sure to preserve the package).</li>
<li>
Select the file.</li>
<li>
Open File -> New -> Other... -> Web Services -> Web Service.</li>
<li>
Select <b>Generate a proxy</b>.</li>
<li>
Select <b>Test the Web service</b>.</li>
<li>
Select <b>Overwrite files without warning</b>. Result:</li>
<br><img SRC="WebServicesToolsEval_files/imageTEP.JPG" NOSAVE height=565 width=500>
<li>
Click <b>Finish</b>.</li>
<li>
It will take about one minute for the wizard to assemble the Web service
and Web service client Web projects, start Apache Tomcat, and deploy the
projects to Tomcat. Once finished, the generated Sample JSP Web application
will appear in the browser view, maximized here for clarity:</li>
<br><img SRC="WebServicesToolsEval_files/imageJN6.JPG" NOSAVE height=505 width=694>
<li>
Under <b>Methods</b>, click on <b>celsiusToFarenheit(float)</b>.</li>
<li>
Under <b>Inputs</b>, enter <tt>37</tt> into the <b>celsius</b> entry field.</li>
<li>
Click on <b>Invoke</b>. In the Result view, you should get a response of
<b>98.6</b>.</li>
<br><img SRC="WebServicesToolsEval_files/imageG73.JPG" NOSAVE height=505 width=694></ol>
<b>Explanation</b>
<p>The Web Service wizard is orchestrating the end-to-end generation, assembly,
deployment, installation and execution of the Web service, Web service
client, and sample JSPs. In this scenario we clicked Finish on page one.
In effect, this is allowing the wizard to pick reasonable defaults according
to the basic high-level choices made on the first page. If you repeat this
scenario, but use the Next button to work thru the wizard, you will learn
more about the kinds of choices that are available and the kinds of defaults
being assumed.
<p>Note that this evaluation guide does not include a Web Service Client
wizard scenario. This is mainly because the above Web service creation
scenario includes all the logical features and most of the visual features
of the Web Service Client wizard. Also, note that the process of using
the Web service creation wizard to create a Web service top-down is largely
the same as for bottom-up. The only major difference is that the top-down
scenario generates a skeletal Java class which you must implement in order
to get any kind of useful response from the service.
<p>After completing this scenario, the WSDL for the Converter Web service
can be found in Converter/WebContent/wsdl/Converter.wsdl. Now that your
Web service is running, there are a few interesting things you can do with
this WSDL file. Examples:
<ol>
<li>
You can double-click on the WSDL to open the WSDL graphical editor.</li>
<li>
You can right-click on the WSDL and choose <b>Web Services -> Test with
Web Services Explorer</b> to test the service (as similar to <a href="#tour-wse">scenario
3.1</a> above).</li>
<li>
You can right-click on the WSDL and choose <b>Web Services -> Publish WSDL
file</b> to publish the service to a public UDDI registry.</li>
<li>
You can click on the WSDL and choose <b>File -> New -> Other... -> Web
Services -> Web Service Client</b> to generate a Web service client. Note,
however, that we have already witnessed the internal and visual features
of the Web Service Client wizard since, in addition to being its own wizard,
it is quite literally embedded within the larger Web Service wizard.</li>
</ol>
<h3>
<a NAME="tour-prefs"></a>3.3 Exploring the Preferences</h3>
This contribution includes a number of preference pages to help govern
the default behaviour of the Web services tools in the Web Services Tools
and <a href="XMLToolsEval.html">XML Tools</a> contributions.
<p>The <b>Internet</b> preferences page found under <b>Window -> Preferences
-> Internet</b> lets you configure regular and basic-authenticating firewall
proxies for any plugin in Eclipse that opens HTTP connections to the outside
world. Because of the proliferation of WSDL documents, Schema, Web services,
UDDI registries and similar resources on the internet, the Web services
tools are frequently called upon to load resources from the internet. For
users running on the protected side of a firewall, the Internet preferences
page is essential. The settings made on this page apply to all plugins
running in the Eclipse JRE, not just to the Web service plugins.
<blockquote><img SRC="WebServicesToolsEval_files/imageV5J.JPG" NOSAVE height=454 width=684></blockquote>
All the other preference pages reviewed below can be found under
<b>Window
-> Preferences -> Web Services</b>.
<p>The <b>Popup Dialog Selection</b> page lets you enable or disable the
wizards associated with specific Web service popup actions. Most of the
Web services popup (or context menu) actions are equipped with wizards
which are visually enabled by default. Each of these wizards has a checkbox
entitled "Do not show me this dialog box again." If you select this, then
Finish the wizard, the next time you run the same popup action the wizard
will be disabled, meaning the action will simply run with whatever default
values are in effect. You can use the Popup Dialog Selection preferences
page to re-enable the wizards for the various popup actions.
<blockquote><img SRC="WebServicesToolsEval_files/imageS25.JPG" NOSAVE height=454 width=684></blockquote>
The <b>Project Topology</b> page controls the default J2EE project layout
built by the Web service wizards for your Web services and clients. Using
this page, you can choose your favourite J2SE or J2EE project type for
Web service clients, and you can control whether your service and client
projects get assembled into the same EAR or into different EARs. Note:
It is recommended that you choose different EARs for services and clients.
Because of the symmetry of the package-to-namespace and namespace-to-package
mappings when generating Web services and Web service clients, it is common
for classes of identical qualified names to appear in the service and client
projects. If both projects are assembled into the same EAR, J2EE classloaders
can end up loading the wrong classes.
<blockquote><img SRC="WebServicesToolsEval_files/imageOUN.JPG" NOSAVE height=454 width=684></blockquote>
The <b>Resource Management</b> page specifies the file overwrite, folder
creation, and file checkout policies for the wizards.
<blockquote><img SRC="WebServicesToolsEval_files/image14L.JPG" NOSAVE height=454 width=684></blockquote>
The <b>Scenario Defaults</b> page controls the default choices that appear
on the first page of the Web Service and Web Service Client wizards.
<blockquote><img SRC="WebServicesToolsEval_files/imageV0H.JPG" NOSAVE height=454 width=684></blockquote>
The <b>Server and Runtime</b> page lets you choose your favourite server,
Web service runtime and J2EE level.
<blockquote><img SRC="WebServicesToolsEval_files/imageTKB.JPG" NOSAVE height=454 width=684></blockquote>
The <b>Test Facility Defaults</b> page lets you customize the preferred
order of the available Web service test facilities in the tools. In the
WTP, there are two, and in this default order: 1. The Web service sample
JSPs (seen in <a href="#tour-bu">scenario 3.2</a> above) and the Web Services
Explorer (seen in <a href="#tour-wse">scenario 3.1</a> above). The wizards
will choose the first test facility in the list that is compatible with
the scenario. For example, if you run the Web Service wizard with <b>Generate
a Proxy</b> deselected and <b>Test the Web service</b> selected on page
one, then the wizard will launch the Web Services Explorer. Although the
Sample JSP test facility appears first in the list, the wizard will not
choose it since the Sample JSPs require a generated Java proxy.
<blockquote><img SRC="WebServicesToolsEval_files/imageQMH.JPG" NOSAVE height=454 width=684></blockquote>
The <b>Web Services Explorer</b> page includes a couple of preferences
that control how the Explorer talks to UDDI registries and to Web services.
In general you will not need to visit this page.
<blockquote><img SRC="WebServicesToolsEval_files/imageJ5D.JPG" NOSAVE height=454 width=684></blockquote>
The <b>WSDL Files</b> page lets you pick a default namespace for WSDL editing.
<blockquote><img SRC="WebServicesToolsEval_files/imageAUK.JPG" NOSAVE height=454 width=684></blockquote>
The <b>WS-I Compliance</b> page was visited in the prerequisites of <a href="#tour-bu-prereqwsi">scenario
3.2</a> above. It controls the degree to which the tools expect adherence
to various WS-I Profiles.
<blockquote><img SRC="WebServicesToolsEval_files/imageMOB.JPG" NOSAVE height=454 width=684></blockquote>
<h3>
<a NAME="tour-wizards"></a>3.4 Exploring the Wizards</h3>
In addition to the Web Service and Web Service Client wizards discussed
above, there are a couple of other wizards in this contribution.
<p>The <b>Import WSIL</b> wizard (<b>File -> Import... -> WSIL</b>) is
used to create WS-Inspection documents in the workspace containing a list
of one or more WSDL document URLs. The Web Services Explorer and some of
the other wizards can also create WS-Inspection documents in the workspace.
In all these cases, the purpose is to keep references to WSDL documents
(via WSIL) in the workspace instead of copies of WSDL documents (which
can become stale).
<blockquote><img SRC="WebServicesToolsEval_files/imageNQD.JPG" NOSAVE height=550 width=470></blockquote>
<p><br>The <b>Unit Test UDDI Registry Configuration</b> wizard (<b>File
-> New -> Other... -> Web Services -> Unit Test UDDI</b>) is the extension
point for plugging in providers of UDDI registries. There are no UDDI registries
included in the current WTP contribution, so the wizard will come up with
no registries to choose from.
<blockquote><img SRC="WebServicesToolsEval_files/image76L.JPG" NOSAVE height=500 width=500></blockquote>
The <b>Web Service Import</b> wizard (<b>File -> Import... -> Web Service</b>)
launches a wizard that helps you choose a UDDI Registry and then launches
the Web Services Explorer so that you can begin searching for the Web service
you are interested in.
<blockquote><img SRC="WebServicesToolsEval_files/imageRMO.JPG" NOSAVE height=550 width=479></blockquote>
The <b>Web Service Export</b> wizard (<b>File -> Export... -> Web Service</b>)
launches a wizard similar to the aforementioned Web Service Import wizard
that helps you choose a UDDI Registry and then launches the Web Services
Explorer so that you can publish your Web service to the registry.
<blockquote><img SRC="WebServicesToolsEval_files/imageI2V.JPG" NOSAVE height=550 width=493></blockquote>
The <b>Configure Handlers</b> wizard is available from the context menu
for certain WSDL documents and J2EE descriptors. It simplifies the process
of developing and configuring JAX-RPC handlers into a JSR-109 compliant
Web service or Web service client. Since Apache Axis is not a JSR-109 Web
service runtime, the Configure Handlers wizard is of limited use unless
a third party extends the WTP platform with a JSR-109 compliant Web service
runtime.
<blockquote><img SRC="WebServicesToolsEval_files/image5CS.JPG" NOSAVE height=682 width=438></blockquote>
<h3>
<a NAME="tour-popups"></a>3.5 Exploring the Popup Actions</h3>
The Web Services Tools contribution includes a handful of popup actions
available on key resources, including:
<ul>
<li>
Projects.</li>
<li>
WSDL documents.</li>
<li>
WS-Inspection documents.</li>
<li>
Java classes.</li>
<li>
EJBs.</li>
<li>
J2EE deployment descriptors.</li>
</ul>
Popup actions available:
<blockquote>&nbsp;
<table BORDER BGCOLOR="#CCFFFF" >
<tr>
<td><b>Action</b></td>
<td><b>Remarks</b></td>
</tr>
<tr>
<td>Test with Web Services Explorer</td>
<td>Launches the Web Services Explorer to invoke operations on a given
WSDL document.</td>
</tr>
<tr>
<td>Publish WSDL file</td>
<td>Launches the Web Services Explorer to publish WSDL to a UDDI registry.</td>
</tr>
<tr>
<td>Generate WSIL</td>
<td>Launches a wizard that generates a WS-Inspection document from a given
WSDL document.</td>
</tr>
<tr>
<td>Generate Client</td>
<td>Equivalent to File -> New -> Other... -> Web Services -> Web Service
Client.</td>
</tr>
<tr>
<td>Create Web service</td>
<td>Equivalent to File -> New -> Other... -> Web Services -> Web Service
for a bottom-up scenario.</td>
</tr>
<tr>
<td>Generate Java bean skeleton</td>
<td>Equivalent to File -> New -> Other... -> Web Services -> Web Service
for a top-down scenario.</td>
</tr>
<tr>
<td>Configure Handlers</td>
<td>Launches the Configure Handlers wizard.</td>
</tr>
<tr>
<td>Generate Sample JSPs</td>
<td>Launches that subset of the Web Service Client wizard that generates
Sample JSPs from a Java proxy.</td>
</tr>
</table>
</blockquote>
<h3>
<a NAME="tour-frameworks"></a>3.6 Behind the Scenes</h3>
There are several extension points and frameworks, and several examples
of their use, incorporated into the Web services tools. This chapter provides
a glimpse of the key extension points and a couple of significant frameworks.
<h4>
<a NAME="tour-frameworks-ep"></a>3.6.1 Extension Points</h4>
<blockquote>&nbsp;
<table BORDER BGCOLOR="#CCFFFF" >
<tr>
<td><b>Plugin</b></td>
<td><b>Extension Point</b></td>
<td><b>Remarks</b></td>
</tr>
<tr>
<td>com.ibm.env</td>
<td>DynamicWizard</td>
<td>Used to define dynamic wizards and, optionally, couple them to newWizards,
importWizards, exportWizards and popupMenus extensions.</td>
</tr>
<tr>
<td>com.ibm.env</td>
<td>actionDialogPreferenceType</td>
<td>Used by dynamic wizards to enable or disable the "do not show me this
dialog box again", and to control their appearance in the Popup Dialog
Selection preference page.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption</td>
<td>wsfinder</td>
<td>Used to plug in objects that help to locate Web services in the workspace
by looking for specific patterns (WSDL files, deployment descriptors, etc).
Not yet used within WTP.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption</td>
<td>WebServiceStartServerType</td>
<td>Used to plug in objects that manage startup details specific to different
kinds of servers. Though currently used within WTP, this extension point
is likely to be removed.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption</td>
<td>serverDefaulter</td>
<td>Used to plug in algorithms to compute a reasonable runtime target for
projects that do not have a runtime target.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>objectSelectionWidget</td>
<td>The second page of the Web service wizard is where the user selects
the object from which they will build their Web service. Since the selection
controls differ from object type to object type (eg. Java, EJB, WSDL...),
the selection controls are contributed to the page via this extension point.
Extensions for Java and EJB selection are included in the WTP.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>publicUDDIRegistryType</td>
<td>Used to declare known public (internet) UDDI registries to the wizards
and the Web Services Explorer.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>privateUDDIRegistryType</td>
<td>The com.ibm.etools.webservice.uddi.registry plugin uses this extension
point to contribute its private registry configuration page to the end
of the Web service wizards. This extension point is likely to be removed,
with the contents of the com.ibm.etools.webservice.uddi.registry plugin
being pulled right into this plugin.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>webServiceServerRuntimeType</td>
<td>Used to extend the Web service (creation) wizard with pages and logic
that handle the development, assembly, deployment and installation tasks
for Web services of a specific Web service implementation type, using a
specific Web service runtime, and for execution on a specific runtime target
(server).</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>webServiceClientType</td>
<td>Used to extend the Web service (creation) and Web service client wizards
with pages and logic that handle the development, assembly, deployment
and installation tasks for Web service clients of a specific Web service
implementation type, using a specific Web service runtime, and for execution
on a specific runtime target (server or client container).</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>webServiceTest</td>
<td>Used to plug Web service test facilities into the Web service tools.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.consumption.ui</td>
<td>clientProjectType</td>
<td>Used to plug in project types that can accept a JAX-RPC Web service
client and that would appear in the Project Topology preference page.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.explorer</td>
<td>wsexplorerType</td>
<td>Used to plug in alternative WSDL/UDDI exploration tools to the Web
Services Explorer.</td>
</tr>
<tr>
<td>com.ibm.etools.webservice.uddi.registry</td>
<td>privateUDDIRegistryType</td>
<td>Used by providers of specific private UDDI registries to add their
registries to the private registry configuration page (which is in turn
extended into the wizard using com.ibm.etools.webservice.consumption.ui's
privateUDDIRegistryType extension point).</td>
</tr>
</table>
</blockquote>
There are also two frameworks that help address two key requirements of
the Web services tools. One requirement is that all the work done by the
Web services tools be accomplished, where possible, in a variety of user
interface environments including, but not limited to, Eclipse. The other
requirements is that the Web services wizards in Eclipse exhibit page sequences
that are highly dynamic and extensible.
<h4>
<a NAME="tour-frameworks-ecf"></a>3.6.2 The Environment Command Framework</h4>
The Environment Command Framework or <b>ECF</b> provides the means for
encapsulating and coordinating the execution of the maximum amount of tools
code in the form of reusable, stateful Command objects that are not tied
to any particular user interface environment. The ECF defines “Command
Fragments” as a means for organizing Commands into a tree that is progressively
flattened and executed for a given scenario. The ECF manages the flow of
state between Command objects, and manages the execution, undoing, and
redoing of Commands. The ECF makes heavy use of URIs to manipulate resources
regardless of their location in an Eclipse workspace, a filesystem, an
HTTP server, or so forth. Examples of user interface environments are Eclipse
SWT dialogs and wizards, Eclipse headless commands, Java command line tools,
ANT tasks, JUnit testcases, Web services and batch processes.
<p>The framework, as well as a command line implementation of it, can be
found in <b>com.ibm.env.core</b>. An Eclipse implementation of the framework
can be found in <b>com.ibm.env</b>.
<h4>
<a NAME="tour-frameworks-dwf"></a>3.6.3 The Dynamic Wizard Framework</h4>
The Dynamic Wizard Framework or <b>DWF</b> provides for the assembly of
highly dynamic and extensible wizards. It also provides boilerplate extensions
to the Eclipse newWizards, importWizards, exportWizards and popupMenus
extension points to permit DWF wizards to be plugged into these Eclipse
extension points with no adapter code and only a small amount of extension
XML. The sequence of pages in a DWF wizard is not fixed. Rather, the determination
of the “next” page is made on demand based upon up-to-the-minute state
and/or known extensions to DWF extension points. The DWF provides for the
abstract binding of (non-visual) ECF Command objects and Command state
data to (visual) SWT Widgets and Widget state. In this manner, a DWF wizard
becomes an overlay over a Command Fragment tree.
<p>The framework can be found in <b>com.ibm.env</b>.
<h2>
<a NAME="feedback"></a>4.0 Provide Feedback to Us</h2>
<P>We encourage development/design feed back on the <A
href="https://dev.eclipse.org/mailman/listinfo/wtp-dev">wtp-dev</A> mailing list. You can subscribe to the list via <A
href="https://dev.eclipse.org/mailman/listinfo/wtp-dev">this link</A>.<BR>
<BR>
For usage questions, discussion of bugs, and strange behaviour please post to the eclipse.webtools newsgroup. Information on the Web Tools Platform newsgroup can be found <A
href="http://www.eclipse.org/newsgroups/index.html">here</A>.</P>
</body>
</html>