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