|  | <html> | 
|  |  | 
|  | <head> | 
|  | <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252"> | 
|  | <title>Web Services Development With The Eclipse Web Tools Platform</title> | 
|  | <link rel="stylesheet" href="../default_style.css"> | 
|  | </head> | 
|  |  | 
|  | <body LINK="#0000ff" VLINK="#800080"> | 
|  | <div align="right">  <font face="Times New Roman, Times, serif" size="2">Copyright | 
|  | © 2006 Virtusa Corp.</font> | 
|  | <table border=0 cellspacing=0 cellpadding=2 width="100%"> | 
|  | <tr> | 
|  | <td align=LEFT valign=TOP colspan="2" bgcolor="#0080C0"><b><font face="Arial,Helvetica"><font color="#FFFFFF"> Eclipse | 
|  | Corner Article</font></font></b></td> | 
|  | </tr> | 
|  | </table> | 
|  | </div> | 
|  | <div align="left"> | 
|  | <h1><img src="images/Idea.jpg" height=86 width=120 align=CENTER></h1> | 
|  | </div> | 
|  | <p> </p> | 
|  |  | 
|  | <h1 ALIGN="CENTER">Web Services Development With The Eclipse Web Tools Platform<br> | 
|  | </h1> | 
|  |  | 
|  | <blockquote> | 
|  | <b>Summary</b> | 
|  |  | 
|  | <br> | 
|  | The Web Tools Platform (WTP) Project extends Eclipse with a set of open-source | 
|  | Web Application Development tools and API's. This tutorial focuses on its Web | 
|  | Service application development support. The tutorial will follow a common life | 
|  | cycle of a Web Service application through Service Discovery, WSDL identification, | 
|  | Stub Generation, Testing and WS-I compliance verification. | 
|  | <p><b> By Tyrell Perera, <a href="http://www.virtusa.com">Virtusa Corp</a>.</b><br> | 
|  | <font size="-1">May 02, 2006</font> </p> | 
|  | </blockquote> | 
|  |  | 
|  | <hr width="100%"> | 
|  | <h1>Introduction </h1> | 
|  | <p> The Web Tools Platform (WTP) Project extends Eclipse with a set of open-source | 
|  | Web services development tools and API's. This tutorial gives an overview of | 
|  | the project and focuses on its Web Services support.</p> | 
|  | <p>At present the project is divided into three sub projects:</p> | 
|  | <p>  Web Standard Tools (WST)<br> | 
|  |  J2EE Standard Tools (JST)<br> | 
|  |  Java Server Faces Tools (JSF) </p> | 
|  | <p>The Web Standard Tools subproject contains support for XML Web services, including | 
|  | tools based on standards defined by the W3C, Oasis, WS-I and others. WS-I is | 
|  | an open industry organization chartered to promote Web services interoperability | 
|  | across platforms, operating systems and programming languages. The organizations | 
|  | diverse community of Web services leaders helps customers to develop interoperable | 
|  | Web services by providing guidance, recommended practices and supporting resources.</p> | 
|  | <p>The J2EE Standard Tools subproject contains support for standards defined by | 
|  | the Java Community Process, such as JAX-RPC and JSR-109, and for reference implementations | 
|  | of these standards, such as Apache Axis. The project contains both a set of | 
|  | tools for Web services developers and a set of API's for Web services tool creators.</p> | 
|  | <p>The Java Server Faces Tools project will provide tools and API's for JSR 127 | 
|  | which is part of Java EE 5. The project will operate as an incubator during | 
|  | the WTP 1.0 development cycle and will become a component of the JST subproject | 
|  | in WTP 1.5.</p> | 
|  | <p>Collectively, these three sub projects include tools for HTML, XML, Web Services, | 
|  | J2EE and JSF development along with Server tools for integrating application | 
|  | servers, including Apache Tomcat, Apache Geronimo, JBoss, IBM WebSphere and | 
|  | BEA WebLogic.</p> | 
|  | <p> </p> | 
|  | <p><img src="images/tip.gif" width="62" height="13"> This tutorial uses the Eclipse | 
|  | Web Tools Platform 1.0 and Apache Tomcat 5.5 for it's demonstrations. The locations | 
|  | for downloads are given in the <em><strong>References and Resources </strong></em>section | 
|  | at the end.</p> | 
|  | <p> </p> | 
|  | <p> </p> | 
|  | <h1>Building a 'Stock Quote' Web Service Client Using the Eclipse WTP</h1> | 
|  | <p> Although WTP provides many tools that are useful in Web Application development, | 
|  | this tutorial will focus on the tools that are directly related to Web Services | 
|  | development, testing and deployment. These tools, mostly integrated under the | 
|  | Web Standards Tools sub project, are;</p> | 
|  | <p> 1. Web Service Explorer<br> | 
|  | 2. WSDL/XSD Editor<br> | 
|  | 3. Web Service Wizard and<br> | 
|  | 4. WS-I Test Tools <br> | 
|  | </p> | 
|  | <p>In the following sections of this tutorial, we will look into the usage of | 
|  | these tools in Web Services development. We will consider a scenario where we | 
|  | are entrusted to implement a Web Service client for a 'Stock Quote' service. | 
|  | Using the Eclipse WTP, we will;</p> | 
|  | <ul> | 
|  | <li> Search for an exposed 'Stock Quote' service in a UDDI registry,</li> | 
|  | <li>Access the WSDL for this service,</li> | 
|  | <li>Import the WSDL to the Eclipse WTP workbench,</li> | 
|  | <li>Generate code (stubs) using the WSDL,</li> | 
|  | <li>Test the service and finally</li> | 
|  | <li>Validate WS-I compliance</li> | 
|  | </ul> | 
|  | <p>At each stage of the tutorial, we will look at a demonstration of how the activities | 
|  | described can be done in the Eclipse WTP.</p> | 
|  | <p> </p> | 
|  | <p> </p> | 
|  | <h2>Finding a candidate service using the 'Web Services Explorer'</h2> | 
|  | <p> The Web Services Explorer helps in the <em><strong>Discovery</strong></em>,<em><strong> | 
|  | Testing </strong></em>and<em><strong> Publishing</strong></em> of Web Services. | 
|  | In order to build a client, we need to first find an exposed Web Service, which | 
|  | satisfies our requirements. After finding several candidates from the published | 
|  | UDDI registry information, it is only natural to test the functionality of the | 
|  | methods provided by the services. The 'Web Services Explorer' provided by the | 
|  | Eclipse WTP provides support for each of these actions as outlined below.<br> | 
|  | </p> | 
|  | <p> <strong>1. Discovery</strong></p> | 
|  | <ul> | 
|  | <li> Searching UDDI Registries </li> | 
|  | <blockquote> | 
|  | <p>UDDI is an acronym for Universal Description, Discovery, and Integration. | 
|  | UDDI defines a platform-independent, XML-based registry for businesses worldwide to list | 
|  | themselves on the Internet. UDDI is an open industry initiative (sponsored | 
|  | by OASIS) enabling businesses to publish service listings and discover each | 
|  | other and define how the services or software applications interact over | 
|  | the Internet. A UDDI business registration consists of three components:</p> | 
|  | <p> 1. White Pages - address, contact, and known identifiers;<br> | 
|  | 2. Yellow Pages - industrial categorizations based on standard taxonomies; | 
|  | and<br> | 
|  | 3. Green Pages - technical information about services exposed by the business</p> | 
|  | <p>UDDI is nominally one of the core Web Services standards. It is designed | 
|  | to be interrogated by SOAP messages and to provide access to WSDL documents | 
|  | describing the protocol bindings and message formats required to interact | 
|  | with the web services listed in its directory.</p> | 
|  | </blockquote> | 
|  | <li> Navigating WSIL (Web Services Inspection Language) Documents </li> | 
|  | <blockquote> | 
|  | <p>WS-Inspection is a web service specification for "discovery documents" | 
|  | developed in a joint effort by Microsoft and IBM. WS-Inspection lists groups | 
|  | of web services and their endpoints in an XML format. Currently, other standards | 
|  | are being used for this purpose, such as Microsoft's DISCO. It is expected | 
|  | that WS-Inspection will eventually replace these standards to become the | 
|  | universally accepted discovery standard for web services.</p> | 
|  | </blockquote> | 
|  | <li> Importing WSDL into development project | 
|  | <blockquote> | 
|  | <p>The Web Services Description Language (WSDL) is an XML format published | 
|  | for describing Web services. Version V 1.1 has not been endorsed by the | 
|  | World Wide Web Consortium (W3C), however it has released a draft for version | 
|  | 2.0 on May 11, 2005, that will be a W3C recommendation, and thus endorsed | 
|  | by the W3C.<br> | 
|  | </p> | 
|  | </blockquote> | 
|  | </li> | 
|  | </ul> | 
|  | <p><strong>2. Test</strong><br> | 
|  |  Dynamic invocation based on WSDL<br> | 
|  |  View SOAP messages<br> | 
|  | </p> | 
|  | <p><strong>3. Publish</strong><br> | 
|  |  Publish WSDL into UDDI Registries</p> | 
|  | <p> </p> | 
|  | <p>In the demonstration below we will 'search' a UDDI registry using the Eclipse | 
|  | WTP and filter the results, in order to obtain a viable candidate service for | 
|  | our client. Then we will invoke some 'service operations' to check the actual | 
|  | outputs and finally 'import' the service WSDL to our workbench.</p> | 
|  | <p> </p> | 
|  | <h3>Demonstration</h3> | 
|  | <h4> Launching the Web Services Explorer</h4> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Make sure that you are | 
|  | in the <em><strong>J2EE Perspective</strong></em> in Eclipse. In the J2EE perspective, | 
|  | clicking the 'Launch Web Services Explorer' button in the Eclipse WTP tool bar | 
|  | will launch the Web Services Explorer in your default web browser (in this instance, | 
|  | Mozilla Firefox). The default registry queried is the IBM Test UDDI registry. | 
|  | </p> | 
|  | <p> <img src="images/launch-web-service-explorer.jpg" width="1024" height="768"></p> | 
|  | <p>Figure 1 - Eclipse WTP workbench with the ' <em><strong>Launch Web Services | 
|  | Explorer</strong></em>' button highlighted </p> | 
|  | <h4> </h4> | 
|  | <h4>Web Services Explorer Launched In the Eclipse WTP</h4> | 
|  | <p>In this tutorial we will use the 'XMethods' UDDI registry to get ourselves | 
|  | familiar with the Web Services Explorer. </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Select the registry from | 
|  | the drop down list, register for an account, activate the account and we are | 
|  | ready to move forward.<br> | 
|  | Click the 'Go' button to begin exploring the registry.</p> | 
|  | <h4><img src="images/web-service-explorer.jpg" width="1024" height="768"></h4> | 
|  | <p>Figure 2 - The Web Services Explorer<br> | 
|  | </p> | 
|  | <p> </p> | 
|  | <h4>Searching For Exposed Web Services in the UDDI registry<br> | 
|  | </h4> | 
|  | <p>After accessing the registry, we need to find a Web Service to work with. </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Click the 'Find' button | 
|  | and type 'Stock Quote Services' as the <em><strong>name of this query</strong></em>. | 
|  | In the <em><strong>name</strong></em> text box, type 'Stock Quote' (which we | 
|  | know exists). In the combo box you get three selections as <em><strong>Businesses</strong></em>, | 
|  | <em> <strong>Services</strong></em> or <em><strong>Service Interfaces</strong></em>. | 
|  | Select Services there. Click Go to execute the search.</p> | 
|  | <p><img src="images/search-services.jpg" width="1024" height="768"></p> | 
|  | <p>Figure 3 - Searching for exposed Web Services</p> | 
|  | <p> </p> | 
|  | <p></p> | 
|  | <p><img src="images/services-found.jpg" width="1024" height="768"></p> | 
|  | <p>Figure 4 - Search query results displayed</p> | 
|  | <p> </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Click on one of the results | 
|  | to view service information. Then click 'Add To WSDL Page' to add this service | 
|  | to the WSDL page to further explore it.</p> | 
|  | <p><img src="images/service-details-displayed.jpg" width="1024" height="768"></p> | 
|  | <p>Figure 5 - Add to WSDL action selected</p> | 
|  | <h4> </h4> | 
|  | <h4> Invoking Service Operations Available for Developers</h4> | 
|  | <p>We can explore and invoke WSDL operations in the WSDL Page. In this particular | 
|  | service, we can invoke the operation available to get a Stock Quote for a given | 
|  | symbol string. This is good because we can actually try out the service methods | 
|  | and verify whether the expected output is provided by them.</p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Type 'IBM' and check the | 
|  | 'Status' panel for the returned data.</p> | 
|  | <h4><img src="images/invoking-service-operations.JPG" width="1024" height="768"></h4> | 
|  | <p>Figure 6 - Invoking a WSDL operation</p> | 
|  | <p></p> | 
|  | <p> </p> | 
|  | <h4>Importing the Service WSDL to the Workbench</h4> | 
|  | <p> After exploring and finding our services, the next step is to start using | 
|  | them in our Web Applications. In order to do this, we need to create Client | 
|  | stubs along with <em>Web Service Emulators</em> (to test our clients). Using | 
|  | the Eclipse WTP we can import the WSDL of the Web Service explored into the | 
|  | workbench. </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Let's try this using the | 
|  | steps below.<br> | 
|  | </p> | 
|  | <blockquote> | 
|  | <p> 1. Create a simple project in your Eclipse WTP workbench (Ex: WTPtutorial)<br> | 
|  | 2. Click 'Import WSDL To Workbench' button in the web services explorer, as | 
|  | illustrated below<br> | 
|  | 3. Select the appropriate project to import the WSDL to (in this instance, | 
|  | WTPtutorial)<br> | 
|  | 4. Give a name to the generated WSDL file in the project.</p> | 
|  | </blockquote> | 
|  | <h2><img src="images/impor-wsdl-to-workbench.JPG" width="1024" height="768"></h2> | 
|  | <p>Figure 7 - Importing the WSDL of the service to the workbench</p> | 
|  | <p></p> | 
|  | <h2> </h2> | 
|  | <h2>Editing Documents with the WSDL/XSD Editor</h2> | 
|  | <p>As described previously, The Web Services Description Language (WSDL) is the | 
|  | XML format published for describing Web services. WSDL describes the public | 
|  | interface to the web service. This is an XML-based service description on how | 
|  | to communicate using the web service; namely, the protocol bindings and message | 
|  | formats required to interact with the web services listed in its directory. | 
|  | The supported operations and messages are described abstractly, and then bound | 
|  | to a concrete network protocol and message format.</p> | 
|  | <p>WSDL is often used in combination with SOAP and XML Schema to provide web services | 
|  | over the internet. A client program connecting to a web service can read the | 
|  | WSDL to determine what functions are available on the server. Any special data | 
|  | types used are embedded in the WSDL file in the form of XML Schema. The client | 
|  | can then use SOAP to actually call one of the functions listed in the WSDL.</p> | 
|  | <p>An XML Schema Definition (XSD) is an instance of an XML schema written in the | 
|  | W3C's XML Schema language. An XSD defines a type of XML document in terms of | 
|  | constraints upon what elements and attributes may appear, their relationship | 
|  | to each other, what types of data may be in them, and other things.<br> | 
|  | </p> | 
|  | <p> The WSDL/XSD Editor provided by the Eclipse WTP provides the developer with | 
|  | functionality expected from an advanced editor such as;<br> | 
|  | </p> | 
|  | <p> Graphical and Source editing modes<br> | 
|  |  Seamless integration for editing inline XSD<br> | 
|  |  Content Assist<br> | 
|  |  Pop-up actions<br> | 
|  |  Binding Wizard<br> | 
|  |  Validation, including WS-I profiles<br> | 
|  |  Extensible for WSDL extension elements</p> | 
|  | <p>Illustrated below is the WSDL imported from the above section. It is displayed | 
|  | in the WSDL editor running in <em><strong>graphical</strong></em> mode.</p> | 
|  | <h3><img src="images/wsdl-editor-graphical-mode.JPG" width="1024" height="768"></h3> | 
|  | <p>Figure 8 - The WSDL editor running in graphical mode</p> | 
|  | <p></p> | 
|  | <h3> </h3> | 
|  | <h3>WSDL Editor Demonstration</h3> | 
|  | <p><br> | 
|  | <img src="images/tryit.gif" width="61" height="13"> We will try the editor following | 
|  | the steps below.</p> | 
|  | <blockquote> | 
|  | <p><br> | 
|  | 1. Open StockQuote.wsdl in WSDL Editor<br> | 
|  | 2. Go into graphical view of XML schema for messages<br> | 
|  | 3. Navigate into GetQuote element<br> | 
|  | 4. Switch to Source tab<br> | 
|  | 5. Navigate using linked Outline and Properties views</p> | 
|  | </blockquote> | 
|  | <p>In the illustration below, we can see the editor in 'Source' mode along with | 
|  | the Eclipse workbench content outline.</p> | 
|  | <h2><img src="images/wsdl-editor-demo.JPG" width="1024" height="768"></h2> | 
|  | <p>Figure 9 - The WSDL Editor running in 'Source' mode, with 'Content Outline' | 
|  | and syntax highlighting</p> | 
|  | <p></p> | 
|  | <h2> </h2> | 
|  | <h2>Generating Code Using the Web Services Wizard</h2> | 
|  | <p> The next stage in the tutorial is to start creating and accessing web services. | 
|  | The Eclipse WTP Web Services Wizard provides the tools for doing just that. | 
|  | </p> | 
|  | <p>The wizard;<br> | 
|  | </p> | 
|  | <p> 1. Supports generate/deploy/test/publish lifecycle<br> | 
|  | 2. Configures project, server, and SOAP engine<br> | 
|  | 3. Has highly extensible | 
|  | <ul> | 
|  | <li> SOAP engines</li> | 
|  | <li> Code generators</li> | 
|  | <li> Test facilities </li> | 
|  | </ul></p> | 
|  | <p> </p><h3>Web Services Client Wizard Demonstration</h3> | 
|  | <p> In this demonstration, we will create a Web Service client for our 'Stock | 
|  | Quote' service. We will follow the Generate, Deploy, Test and Publish life cycle. | 
|  | </p> | 
|  | <h4><br> | 
|  | 1. Configuring the Server</h4> | 
|  | <p> First we must configure our server in the Eclipse WTP workbench. This demonstration | 
|  | will use the Apache Tomcat server. </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Go to the Menu File -> | 
|  | New -> Other and Select Servers. Fill your server information as illustrated | 
|  | in the Add New Server wizard.</p> | 
|  | <p><br> | 
|  | <img src="images/web-service-wizard-1.JPG" width="500" height="500"></p> | 
|  | <p>Figure 10 - Beginning to add a new server</p> | 
|  | <p> </p> | 
|  | <p><img src="images/web-service-wizard-2.JPG" width="518" height="538"></p> | 
|  | <p>Figure 11 - Selecting the server 'type'</p> | 
|  | <p> </p> | 
|  | <h4><br> | 
|  | 2. Complete the Web Services Wizard</h4> | 
|  | <p> <img src="images/tryit.gif" width="61" height="13"> The steps are illustrated | 
|  | in the following screen shots. They can be briefly outlined as;</p> | 
|  | <p>1. Run Web Service Client Wizard to generate Java proxy and JSP test page with | 
|  | TCP/IP monitor<br> | 
|  | Go to Menu File -> New -> Other. Expand '<em><strong>Web Services</strong></em>'. | 
|  | Select '<strong><em>Web Service Client</em></strong>'. Click 'Next'.</p> | 
|  | <p><img src="images/create-web-service-1.jpg" width="500" height="500"></p> | 
|  | <p>Figure 12 - Beginning to create a new WEb Service client</p> | 
|  | <p> </p> | 
|  | <p>2. Select the 'Client proxy type' as '<em><strong>Java Proxy</strong></em>'. | 
|  | Make sure that you select the '<em><strong>Test the Web service</strong></em>' | 
|  | and '<em><strong>Monitor the web service</strong></em>' options.</p> | 
|  | <p><img src="images/create-web-service-2.jpg" width="500" height="500"> </p> | 
|  | <p>Figure 13 - Selecting the options for the generated Web Service client</p> | 
|  | <p> </p> | 
|  | <p>3. Click 'Browse' and select the '<em><strong>StockQuote.wsdl</strong></em>' | 
|  | file as the WSDL document.</p> | 
|  | <p><img src="images/create-web-service-3.jpg" width="500" height="685"> </p> | 
|  | <p>Figure 14 - Locating the imported WSDL</p> | 
|  | <p> </p> | 
|  | <p>4. Type 'StockQuoteClient' as the Client Project. All the generated code will | 
|  | be organized under this project in the Eclipse WTP.</p> | 
|  | <p><img src="images/create-web-service-4.jpg" width="500" height="685"> </p> | 
|  | <p>Figure 15 - Giving a name for the project that will contain the generated | 
|  | client stubs</p> | 
|  | <p> </p> | 
|  | <p>5. Click 'Next' in this page. No modifications necessary.</p> | 
|  | <p><img src="images/create-web-service-5.jpg" width="500" height="685"></p> | 
|  | <p>Figure 16 - Final options before code generation</p> | 
|  | <p> </p> | 
|  | <p>6. If your Tomcat server is stopped, you might get this screen. Click 'Start | 
|  | Server' to start the server. Once the server is started successfully, click | 
|  | 'Next'. </p> | 
|  | <p><img src="images/create-web-service-6.jpg" width="500" height="685"></p> | 
|  | <p>Figure 17 - Start the Tomcat server </p> | 
|  | <p> </p> | 
|  | <p>7. In this screen select the option 'Run test on server', since it's not selected | 
|  | by default. This will enable us to test the Web service in our Tomcat server | 
|  | with the Eclipse WTP generated JSP's. Click 'Finish' to complete the wizard.</p> | 
|  | <p><img src="images/create-web-service-7.jpg" width="500" height="685"></p> | 
|  | <p>Figure 18 - Selecting the service testing options</p> | 
|  | <p> </p> | 
|  | <p>8. Finally you can see the newly created project in the Eclipse WTP workbench | 
|  | (Under 'Dynamic Web Projects'), along with the generated files.</p> | 
|  | <p><img src="images/create-web-service-8.jpg" width="1024" height="768"></p> | 
|  | <p>Figure 19 - The generated code, displayed in the workbench</p> | 
|  | <p> </p> | 
|  | <h4>3. Test the Generated Client Stubs</h4> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Here we are setting the | 
|  | end point of the web service (using setEndPoint() method) as http://localhost:9913/stockquote.asmx | 
|  | instead of http://www.webservicex.com/stockquote.asmx. We do this in order | 
|  | to monitor our SOAP requests using TCP/IP monitor.</p> | 
|  | <p><img src="images/test-generated-stubs-1.JPG" width="1024" height="768"></p> | 
|  | <p>Figure 20 - Testing using the generated JSP's hosted in the Tomcat server</p> | 
|  | <p> </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Now go to the Menu Window | 
|  | -> Show View -> Other. Expand Debug and select TCP/IP monitor. This will | 
|  | launch the TCP/IP monitor GUI. Right click as illustrated and select Properties.</p> | 
|  | <p><img src="images/test-generated-stubs-2.JPG" width="1024" height="768"></p> | 
|  | <p>Figure 21 - The TCP/IP monitor GUI</p> | 
|  | <p> </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> In the Properties dialog | 
|  | click Add. In the next dialog, enter 9913 as monitoring port and the real | 
|  | end points details as illustrated below. Click OK and Start to begin monitoring.</p> | 
|  | <p>What happens here is that, all requests going to the real endpoint will be | 
|  | monitored by the TCP/IP monitor. Hence, we get the opportunity to intercept | 
|  | and view all SOAP messages and debug if required.</p> | 
|  | <p><img src="images/test-generated-stubs-3.JPG" width="1024" height="768"></p> | 
|  | <p>Figure 22 - Port mapping in the TCP/IP monitor</p> | 
|  | <p> </p> | 
|  | <p>Now that we have all this set up, lets fire a test and see everything in action. | 
|  | </p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Right click the project | 
|  | in the workbench. Click Run As -> Run on Server. The test JSP page will come | 
|  | up. Set the end point as described above. Make sure the TCP/IP monitor is configured | 
|  | and running as illustrated above.</p> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Click on the getStockQuote() | 
|  | method. Input a symbol (ex: ibm). If all is well you should get data similar | 
|  | to the following screen shot.</p> | 
|  | <h2><img src="images/test-generated-stubs-4.JPG" width="1024" height="768"></h2> | 
|  | <p>Figure 23 - Testing the service, while the SOAP messages are intercepted by | 
|  | the TCP/IP monitor</p> | 
|  | <p> </p> | 
|  | <p></p> | 
|  | <p> </p> | 
|  | <h2>Maintaining Interoperability Using the WS-I Compliance Tools</h2> | 
|  | <h2> </h2> | 
|  | <h2>What is WS-I?<br> | 
|  | </h2> | 
|  | <p>The Web Services Interoperability Organization is an open industry effort chartered | 
|  | to promote Web Services interoperability across platforms, applications and | 
|  | programming languages. It acts an a standards integrator to help Web services | 
|  | advance in a structured, coherent manner. The WS-I consists of approximately | 
|  | 130 member organizations of which 70% are vendors and 30% are end-user organizations. | 
|  | It has a strong non-U.S. membership, including the very influential Japan SIG.<br> | 
|  | </p> | 
|  | <h2>WS-I Goals</h2> | 
|  | <p>1. Achieve Web services interoperability by integrating specifications, promoting | 
|  | consistent implementations and providing a visible representation of conformance.<br> | 
|  | 2. Accelerate Web services deployment by offering implementation guidance and | 
|  | best practices, delivering tools and sample applications and providing a implementers | 
|  | forum where developers can collaborate.<br> | 
|  | 3. Encourage Web services adoption by building industry consensus to reduce | 
|  | early adopter risks, providing a forum for end users to communicate requirements | 
|  | and raising awareness of customer business requirements</p> | 
|  | <p> </p> | 
|  | <p>The WS-I Compliance tools in Eclipse WTP helps the developer to verify interoperability | 
|  | of the web services developed. These tools are developed in the Eclipse Web | 
|  | Service Validation Tools (WSVT) Project and supports;</p> | 
|  | <p>  WS-I Basic Profile 1.0/1.1<br> | 
|  |  Simple SOAP Binding Profile 1.0 and <br> | 
|  |  Attachments Profile 1.0</p> | 
|  | <p>The Eclipse WTP provides us with;</p> | 
|  | <p> 1. A WSDL 1.1 Validator and<br> | 
|  | 2. A SOAP 1.1 Message Monitor/Analyzer</p> | 
|  | <h3> </h3> | 
|  | <h3>WS-I Test Tools Demonstration</h3> | 
|  | <h4><br> | 
|  | 1. Specify level of WS-I compliance in Preferences page</h4> | 
|  | <p><img src="images/tryit.gif" width="61" height="13"> Go to the Menu Window -> | 
|  | Preferences. Expand Web Services. Select Profile Compliance and Validation </p> | 
|  | <p>We can set the desired levels of WS-I compliance validations here.</p> | 
|  | <p><img src="images/wsi-test-tools-1.JPG" width="690" height="532"></p> | 
|  | <p>Figure 24 - Setting the WS-I compliance levels</p> | 
|  | <h4></h4> | 
|  | <p></p> | 
|  | <h4>2. Save SOAP messages from TCP/IP to a WS-I log file</h4> | 
|  | <p> <img src="images/tryit.gif" width="61" height="13"> Click the appropriate | 
|  | button from the TCP/IP monitor GUI as illustrated below.<br> | 
|  | </p> | 
|  | <p> <img src="images/wsi-test-tools-2.JPG" width="1024" height="768"> </p> | 
|  | <p>Figure 25 - Launching the Logging Wizard</p> | 
|  | <p> </p> | 
|  | <h4>3. Specify WSDL file that describes messages</h4> | 
|  | <h4><img src="images/wsi-test-tools-3.JPG" width="503" height="570"></h4> | 
|  | <p>Figure 26 - Specifying a logging file</p> | 
|  | <h4>  </h4> | 
|  | <h4>4. Select the WSDL file for the web service (Optional)</h4> | 
|  | <p><img src="images/wsi-test-tools-4.JPG" width="667" height="553"></p> | 
|  | <p>Figure 27 - Selecting the WSDL for the Web Service</p> | 
|  | <p> </p> | 
|  | <h4></h4> | 
|  | <h4>5. View WS-I errors and warnings in Problems view</h4> | 
|  | <p> After setting everything up as illustrated, we can validate the message log | 
|  | file as shown in the following screen shot. Any issues will be listed in the | 
|  | Problems view of the workbench.</p> | 
|  | <h1><img src="images/wsi-test-tools-5.JPG" width="1024" height="768"> </h1> | 
|  | <p>Figure 28 - Validating the WS-I log file</p> | 
|  | <p></p> | 
|  | <h1></h1> | 
|  | <p></p> | 
|  | <h1>Conclusion </h1> | 
|  | <p> This tutorial illustrates a common life cycle of a Web Services application | 
|  | in order to highlight the support provided in its development from the Eclipse | 
|  | Web Tools platform. This tutorial is in no way complete, since it would require | 
|  | a book to highlight all the features offered by the Eclipse WTP for Web Services | 
|  | and Web Application developers. Further information on the features of the Eclipse | 
|  | WTP can be found in the Eclipse WTP forums and mailing lists.</p> | 
|  | <p> </p> | 
|  | <p> </p> | 
|  | <h1>References and Resources</h1> | 
|  | <ol> | 
|  | <li>Eclipse WTP <a href="http://www.eclipse.org/webtools/">http://www.eclipse.org/webtools/</a></li> | 
|  | <li>Web Services Interoperability Organization <a href="http://www.ws-i.org/">http://www.ws-i.org/</a></li> | 
|  | <li>Apache AXIS <a href="http://ws.apache.org/axis/">http://ws.apache.org/axis/</a></li> | 
|  | <li>Apache Tomcat <a href="http://tomcat.apache.org/">http://tomcat.apache.org/</a></li> | 
|  | <li>Apache Geronimo <a href="http://geronimo.apache.org/">http://geronimo.apache.org/</a></li> | 
|  | <li>JBoss <a href="http://www.jboss.org/">http://www.jboss.org/</a></li> | 
|  | <li>IBM WebSphere <a href="http://www.ibm.com/websphere">http://www.ibm.com/websphere</a></li> | 
|  | <li>BEA WebLogic <a href="http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/weblogic">http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/weblogic</a></li> | 
|  | <li>Wikipedia <a href="http://en.wikipedia.org/wiki/WSDL">http://en.wikipedia.org/wiki/WSDL</a>, | 
|  | <a href="http://en.wikipedia.org/wiki/UDDI">http://en.wikipedia.org/wiki/UDDI</a></li> | 
|  | </ol> | 
|  | <p> </p> | 
|  | <p> </p> | 
|  | </body> | 
|  | </html> |