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:
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 Apache Tomcat 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 Chapter 3.2 to create a Web service and Web service client bottom-up from a simple Java class.
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.
The Web Services Explorer provides three key services to the user:
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.
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.
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:
The Internet preferences page found under Window -> Preferences -> Internet 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.
All the other preference pages reviewed below can be found under Window -> Preferences -> Web Services.The Popup Dialog Selection 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.
The Project Topology 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. The Resource Management page specifies the file overwrite, folder creation, and file checkout policies for the wizards. The Scenario Defaults page controls the default choices that appear on the first page of the Web Service and Web Service Client wizards. The Server and Runtime page lets you choose your favourite server, Web service runtime and J2EE level. The Test Facility Defaults 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 scenario 3.2 above) and the Web Services Explorer (seen in scenario 3.1 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 Generate a Proxy deselected and Test the Web service 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. The Web Services Explorer 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. The WSDL Files page lets you pick a default namespace for WSDL editing. The WS-I Compliance page was visited in the prerequisites of scenario 3.2 above. It controls the degree to which the tools expect adherence to various WS-I Profiles.The Import WSIL wizard (File -> Import... -> WSIL) 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).
The Unit Test UDDI Registry Configuration wizard (File
-> New -> Other... -> Web Services -> Unit Test UDDI) 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.
Action Remarks Test with Web Services Explorer Launches the Web Services Explorer to invoke operations on a given WSDL document. Publish WSDL file Launches the Web Services Explorer to publish WSDL to a UDDI registry. Generate WSIL Launches a wizard that generates a WS-Inspection document from a given WSDL document. Generate Client Equivalent to File -> New -> Other... -> Web Services -> Web Service Client. Create Web service Equivalent to File -> New -> Other... -> Web Services -> Web Service for a bottom-up scenario. Generate Java bean skeleton Equivalent to File -> New -> Other... -> Web Services -> Web Service for a top-down scenario. Configure Handlers Launches the Configure Handlers wizard. Generate Sample JSPs Launches that subset of the Web Service Client wizard that generates Sample JSPs from a Java proxy.
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.
Plugin Extension Point Remarks com.ibm.env DynamicWizard Used to define dynamic wizards and, optionally, couple them to newWizards, importWizards, exportWizards and popupMenus extensions. com.ibm.env actionDialogPreferenceType 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. com.ibm.etools.webservice.consumption wsfinder 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. com.ibm.etools.webservice.consumption WebServiceStartServerType 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. com.ibm.etools.webservice.consumption serverDefaulter Used to plug in algorithms to compute a reasonable runtime target for projects that do not have a runtime target. com.ibm.etools.webservice.consumption.ui objectSelectionWidget 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. com.ibm.etools.webservice.consumption.ui publicUDDIRegistryType Used to declare known public (internet) UDDI registries to the wizards and the Web Services Explorer. com.ibm.etools.webservice.consumption.ui privateUDDIRegistryType 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. com.ibm.etools.webservice.consumption.ui webServiceServerRuntimeType 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). com.ibm.etools.webservice.consumption.ui webServiceClientType 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). com.ibm.etools.webservice.consumption.ui webServiceTest Used to plug Web service test facilities into the Web service tools. com.ibm.etools.webservice.consumption.ui clientProjectType 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. com.ibm.etools.webservice.explorer wsexplorerType Used to plug in alternative WSDL/UDDI exploration tools to the Web Services Explorer. com.ibm.etools.webservice.uddi.registry privateUDDIRegistryType 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).
The framework, as well as a command line implementation of it, can be found in com.ibm.env.core. An Eclipse implementation of the framework can be found in com.ibm.env.
The framework can be found in com.ibm.env.
We encourage development/design feed back on the wtp-dev mailing list. You can subscribe to the list via this link.
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 here.