WSVT Developer FAQ
frequently asked question and answers

WSVT Developer FAQ
Last Modified: March 11th 2004.


Table of contents:
General Goto Toptop
  1. What is WS-I?

    The Web Services Interoperability Organization is an open industry effort chartered to promote Web services interoperability across platforms, applications, and programming languages. The organization brings together a diverse community of Web services leaders to respond to customer needs by providing guidance, recommended practices, and supporting resources for developing interoperable Web services. 


  2. What is a Profile?

    A WS-I Profile is comprised of a set of named and versioned Web services specifications together with a set of implementation and interoperability guidelines recommending how the specifications may be used to develop interoperable Web services.

    The first profile developed by the WS-I Organization is called the WS-I Basic Profile 1.0.  This profile consists of the following set of non-proprietary Web services specifications:

    • SOAP 1.1
    • WSDL 1.1
    • UDDI 2.0
    • XML 1.0 (Second Edition)
    • XML Schema Part 1: Structures
    • XML Schema Part 2: Datatypes
    • RFC2246: The Transport Layer Security Protocol Version 1.0
    • RFC2459: Internet X.509 Public Key Infrastructure Certificate and CRL Profile
    • RFC2616: HyperText Transfer Protocol 1.1
    • RFC2818: HTTP over TLS
    • RFC2965: HTTP State Management Mechanism
    • The Secure Sockets Layer Protocol Version 3.0 

Download and Install Goto Toptop
  1. What to do if the tools complain about a missing TAD file?

    The TAD document named BasicProfileTestAssertions.xml is missing from the profiles directory in the org.wsi.tests.tools  plugin. You can download the TAD from http://www.ws-i.org/Testing/Tools/2003/07/BasicProfileTestAssertions.xml


  2. Message validation doesn't seem to be working. Validation always successful.

    This may be related to a missing TAD file. See What to do if the tools complain about a missing TAD file?
How To Goto Toptop
  1. How to validate a WSDL file in Eclipse

    Right click on the WSDL file and select Validate WSDL File... from the context menu.


  2. How to validate a WSDL file with Ant
    Assuming you're running from the root directory of the WSDL validator (org.eclipse.wsdl.validate) component,

    First define the WSDLValidate task:
    <path id="validatewsdl.classpath">
      <pathelement location="wsdlvalidateui.jar"/>
      <pathelement location="wsdlvalidate.jar"/>
      <pathelement location="jars\wsdl4j.jar"/>
      <pathelement location="jars\qname.jar"/>
      <pathelement location="wsdlvalidatesoap.jar"/>
      <pathelement location="wsdlvalidatehttp.jar"/>
      <pathelement location="wsdlvalidatemime.jar"/>
    </path>

    <taskdef name="WSDLValidate" classname="org.eclipse.wsdl.validate.ui.ant.WSDLValidate" classpathref="validatewsdl.classpath">


    Then use the task as follows:
    <WSDLValidate file="test.wsdl" schemadir="xsd"/>

    See the WSDL Validator Ant Task man page for more details on running the WSDL validator with Ant.


  3. How to configure and start the TCP/IP monitor

    Configuring and starting the TCP/IP monitor is done through the "Preferences" page.

    Click on "Window" in the main menu bar and select "Preferences".
    In the "Preferences" page, select "TCP/IP Monitor" from the list of preferences on the left.
    This should give you the following page:

    Note that if the checkbox is checked, the TCP/IP Monitor view will automatically be shown when there is activity. If this is not selected, the user will need to explicitly show the TCP/IP Monitor view.

    Click the  "New..." button to configure a monitor in the "Create Monitor" dialog.

    Enter the port that the monitor will be listening on in the "Local port" entry.
    Enter the host and port that the monitor will forward the messages to.
    Click "OK" button.

    The monitor has now been configured, the next step is to start it.
    Select the newly created monitor in the "TCP/IP Monitors" window.
    Click "Start" button on the right. Notice that the monitor icon (in the "TCP/IP Monitors" window) is "green" when the monitor is running, and "red" when it is not.


    See How to validate SOAP messages using the TCP/IP monitor?  to learn more about observing, capturing and validating SOAP traffic using the TCP/IP monitor.


  4. How to validate SOAP messages using the TCP/IP monitor

    To Show the TCP/IP monitor view
    If the TCP/IP monitor is not configured to automatically show the monitor view when there is activity, then we need to explicitly show the monitor view.

    Click on "Window" in the main menu bar and select "Show View" and "Others" in the submenu.
    In the "Show View" dialog, select "TCP/IP Monitor" under "Basic".
    Click "OK" button.


    To observe, capture and validate SOAP traffic
    SOAP traffic is captured as request/response pairs in the listening port tree in the monitor view.

    You can view the contents of of a request and corresponding response by expanding the listening port tree and selecting a request/response pair. Note you can view the data as it appears on the wire, as a formatted xml fragment or as an image if appropriate.

    To validate the traffic against the WS-I Basic Profile, click the "validation icon" on the top right hand corner in the TCP/IP monitor view. In the "Specify the WS-I Message Log File Name" page, select the parent folder where the message log will be stored and enter the name of the message log file. Click "Next".

    In the "Include WSDL File" page, you have an option to validate the messages with or without the corresponding WSDL document. Select "Include WSDL document for Web service". Enter the location of the WSDL document or select it within the workbench or from your local file system. Note, the "Next" button is enabled if the specified WSDL document is valid or a WSDL document is not included. Click "Next".

    On the next page, indicate the name, type, parent and namespace of the WSDL element to be analyzed.

    The WSDL element contains both a name and type.  The name refers the name of the WSDL element that should be analyzed, and the type refers to the type of WSDL element that should be analyzed.  Since the element definitions in a WSDL document are referential, the element that is specified indicates the point at which the WSDL related analysis will begin. 

    For example, if the WSDL element references a <wsdl:port> element, then the analyzer will process the <wsdl:port>, the <wsdl:binding> referenced by the <wsdl:port>, the <wsdl:portType> referenced by the <wsdl:binding>, and the <wsdl:operation> and <wsdl:message> elements referenced by the <wsdl:portType>.  If the WSDL element references a <wsdl:portType> element, then the only elements that will be analyzed are the <wsdl:portType> and the <wsdl;operation> and <wsdl:message> elements that it references.

    The following table lists the WSDL elements that can be analyzed and the other WSDL elements that will be analyzed when that type of element is specified.

     

    WSDL Element

    Other WSDL Elements Analyzed

    1

    port

    binding, portType, operation, message

    2

    binding

    portType, operation, message

    3

    portType

    operation, message

    4

    operation

    message

    5

    message

    [none]

    Note by default, the WSDL element references a <wsdl:port> element.

    A WS-I Message log will be created and validated against the WS-I Basic Profile. Any identified WS-I noncompliance, will be displayed as errors or warnings in the "Problems" view.


    See How to configure and start the TCP/IP Monitor? to learn more about configuring and running the monitor using the "Preferences" page.


  5. How to run the command line conformance tools to capture and analyze soap messages

    T.B.D.

 

Compatibility Goto Toptop
  1. What version(s) of Eclipse does this code work on?

    For WSVT 1.2.0, use Eclipse Version 3.0 (M6) and  Java 2 Standard Edition SDK Version 1.4.2.
    For versions prior to WSVT 1.2.0, use Eclipse Version 2.1.1and  Java 2 Standard Edition SDK Version 1.3.1.