| <!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, <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 <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> | |
| <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> | |
| <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> |