Web services tools - release notes

1.0 Introduction
2.0 Supported software and specifications
3.0 Changes from the previous release
4.0 Known problems
   4.1 Web Services Explorer
   4.2 TCP/IP monitoring server does not work on Linux
   4.3 Private UDDI Registry
   4.4 Interoperability with IBM SOAP runtime
   4.5 Generating a WSDL document from a DADX file
   4.6 Web tools JSP Generator
   4.7 Hospital Scenario
   4.8 Using the Universal Test Client
   4.9 Multiple output allowed in certain cases with DADX Web services
   4.10 JDBC driver preference is for use on Linux only
   4.11 Need to update DAD example files if XML extender is not installed in default directory
   4.12 DADX Web services issues
   4.13 Explorer pop-up dialogs may not display correctly if both Mozilla and Netscape are running
   4.14 DADX Generation Support
   4.15 WSDL errors after importing a Web services file from 4.0.x
   4.16 Problems when using Linux with GTK
   4.17 Using Tomcat server with AXIS runtime
   4.18 Problem with creating EJB Web services with the WebSphere v5.0.2 runtime
   4.19 Problems when using Web services command line
   4.20 Web service creation without an existing server
   4.21 Generating Web services sample application
   4.22 Importing WSDL files with HTTP basic Authentication
   4.23 Problems with using WebSphere v5.0.2 runtime
   4.24 Setting up a DADX group with datasource information
   4.25 Loading client locator using the Universal Test Client
   4.26 Resource preferences not observed
   4.27 Problems with using Apache Axis 1.0 runtime
   4.28 Web service sample JSP failed to compile
   4.29 Error with localhost not defined
   4.30 Permanent Limitations when using IBM SOAP runtime
   4.31 Web service and client using different runtime
   4.32 Clicking Finish in Web service client wizard
   4.33 Selecting router project when creating EJB Web services
   4.34 Creating EJB Web services or EJB skeleton using command line
   4.35 Web services cheat sheet

1.0 Introduction

The Web service tools feature enables you to discover, create, and publish Java bean, DADX, enterprise bean, and URL Web services. This readme file describes the known problems, limitations, and workarounds that are associated with the following Web service tools functions:

2.0 Supported software and specifications

This release of the Web service tools generates code that complies with the following specifications:

This release of the Web service tools supports:

If you are launching the WORF test environment outside the workbench using Mozilla, a Mozilla version of at least 1.3.1 is recommended. Output from invoking your web service as well as description files may not be rendered correctly in earlier versions of the Mozilla browser.

The DADX runtime requires DB2 7.2 fix pack 6 or higher, or DB2 8.1 or higher.

3.0 Changes from the previous release

The following features are new in the Web services tools in v5.1:

4.0 Known problems

4.1 Web Services Explorer

4.2 TCP/IP monitoring server does not work on Linux

The TCP/IP monitoring server does not work on Linux. Any attempt to insert the monitoring server between a Web Service and a Web Service client (for example, the Web service sample JSPs, Web tools Java bean JSPs and Universal Test Client) will interfere with communications between the client and the service. In particular, the client will hang indefinitely on the first response from the service. To recover from this condition in the sample JSPs or the UTC, close all browsers, then launch a new browser from outside of WebSphere Studio and type in the appropriate URL for the generated sample JSPs or the Universal Test Client.

To monitor SOAP traffic on Linux, try another monitoring tool such as the TCP/IP tunnel included with the Apache SOAP runtime which can be downloaded from http://ws.apache.org/soap/index.html.tool. Start the tunnel and invoke a Web service client operation. The request and response traffic should appear in the tunnel, however, the client will appear to suspend. Stop the tunnel. This will cause the client to unblock and the operation to complete. Restart the tunnel before attempting the next call.

4.3 Private UDDI Registry

4.4 Interoperability with IBM SOAP runtime

4.5 Generating a WSDL document from a DADX file

4.6 Web tools JSP Generator

The generated Web tools Java bean JSPs do not support special types BigDecimal, Date, GregorianCalendar, BigInteger and URL. Also not supported are maps, collections, arrays and complex types. You may hand-edit the JSPs to support these types, or you may generate the Web service Sample JSPs instead, which do support these types. Visit Windows > Preferences > Web Services > Dialogs to choose your preferred style of generated Sample JSPs.

4.7 Hospital Scenario

The DB2 driver db2java.zip must be added to the WebSphere ws.ext.dirs class path. To add db2java.zip, do the following:

  1. Switch to the Server perspective (Window > Open Perspective > Server).
  2. In the Server Configuration pane, expand Server.
  3. Double-click WebSphere v.4.0 Test Environment. The Instance editor opens.
  4. In the Instance editor, click the Paths tab, then click Add External JARs in the WebSphere specific class path (ws.ext.dirs) section to add /home/db2inst1/sqllib/java12/db2java.zip to the WebSphere path.
  5. Select File > Save (name of file) to save your changes, then exit the Instance editor.

For updates to the Hospital scenario documentation, go to the WebSphere Developer Domain and click Library.

4.8 Using the Universal Test Client

When launching the Universal Test Client from the Web Services wizard, the JNDI Provider URL is set to the default WebSphere v5 port of 2809. If you are using a WebSphere v4 server or if you have changed the port number, you would not be able to search the JNDI directory. If you try to access the JNDI directory, you will get the following error:

IWAD0403E Could not construct the JNDI tree: Caught CORBA.COMM_FAILURE when resolving initial reference=WsnNameService

The workaround is:

  1. Double-click the server you are using. This will bring up the server properties.
  2. Select the ports tab.
  3. Copy the Orb bootstrap port.
  4. Open the JNDI properties window in the Universal Test Client.
  5. Paste the bootstrap port into the Provider URL text iput box.

4.9 Multiple output allowed in certain cases with DADX Web services

Normally, multiple outputs in a Web service is not supported by our tools. However, in the case of DADX Web services, multiple outputs are allowed if the Use Document Style group property is set to true. In this case, when document style is true, multiple outputs are combined together into a single XML document.

4.10 JDBC driver preference is for use on Linux only

A new Web services Preferences (Windows > Preferences > Web Services) category called JDBC drivers has been added. Although this preference is available on all platforms, it is intended for use only on Linux. On Linux, it can be difficult to determine the location of the JAR file containing JDBC drivers. Therefore, this preference page was added so that you can specify which JAR file to use. Currently, only the DADX validation code uses this JAR file information.

4.11 Need to update DAD example files if XML extender is not installed in default directory

The DAD files located in the WSinstall_dir\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples directory may need to be modified to reflect your particular system configuration.

Near the top of the file is a line similar to the following:

<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">

If the XML extender has been loaded into a different location than c:\dxx then this string needs to be updated to reflect the actual location. This applies to Linux machines as well, where the location is usually /usr/IBMdb2xml.

4.12 DADX Web services issues

4.13 Explorer pop-up dialogs may not display correctly if both Mozilla and Netscape are running

The Web services Explorer's pop-up dialogs may not display correctly if both Mozilla and Netscape are running at the same time. Pop-up dialogs include the Browse WSDL dialog and the Browse Category dialog. To work around this, use either Mozilla or Netscape, but not both at the same time.

4.14 DADX Generation Support

Although user defined functions are listed in the Generate DADX wizard, there is currently no support for generating DADX from user defined functions. Support is only available for DADX generation from DAD files, stored procedures and SQL statements. Selecting a UDF will cause a simple DADX skeleton file to be generated.

4.15 WSDL errors after importing a Web services file from 4.0.x

If you have imported a Web services file from 4.0.x, you may receive the following error messages:

Error The part 'result' has an invalid value 'anyElement' defined for its type. Type declarations must refer to valid values defined in a schema.

Error The part 'return' has an invalid value 'findPatientResult' defined for its element. Element declarations must refer to valid values defined in a schema.

Error The part 'response' has an invalid value 'findPatientResponse' defined for its element. Element declarations must refer to valid values defined in a schema.

The workaround is:

  1. Delete the WSDL files.
  2. Regenerate your Web services by rerunning the Web Services wizard.

4.16 Problems when using Linux with GTK

4.17 Using Tomcat server with AXIS runtime

4.18 Problem with creating EJB Web services with the WebSphere v5.0.2 runtime

4.19 Problems when using Web services command line

4.20 Web service creation without an existing server

4.21 Generating Web services sample application

4.22 Importing WSDL files with HTTP basic Authentication

When generating skeletons or clients from a WSDL file that has relative imports and is HTTP Basic Authentication protected, the user will see an error message indicating that the WSDL file cannot be resolved even if the correct user ID and password are entered. The problem is that the user ID and password are only used to retrieve the original WSDL file, and not the files that it imports.

To overcome this problem, the user can download the WSDL file and all the files that it imports to the workbench first, and then generate skeleton or client from the downloaded WSDL file.

4.23 Problems with using WebSphere v5.0.2 runtime

4.24 Setting up a DADX group with datasource information

If the WebSphere Application Server V5.0 is being used to host a DADX Web service, then the group.properties file for the DADX group should use the following initialContextFactory property:

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

Also, the web.xml file for the project containing the DADX group needs to have the following added. (Given that the datasource JNDI name is jdbc/hospital.)

       <resource-ref id="ResourceRef_1058550453092">
              <res-ref-name>jdbc/hospital</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>CONTAINER</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
 

4.25 Loading client locator using the Universal Test Client

When the Universal Test Client is unable to preload the client locator class generated by the WebSphere v5.0.2 or Axis runtime, this is because the name of the Java bean class in the service Web project is the same as the name of the SEI class in the client Web project. To workaround this problem:

  1. Remove the client Web project from the workspace
  2. Create the client Web project under a different EAR, where the EAR project name has to be alphabetically ahead of the service EAR project name.  For example, if the service EAR project name call "DefaultEAR", create the new EAR project name call "ClientEAR".
  3. Re-run the Web Service wizard.

 

4.26 Resource preferences not observed

The file overwrite, folder creation and automatic file checkout preference are not observed when creating Web services using the WebSphere v5.0.2 and Axis runtime. Folder creation is always allowed and automatic file checkout is never enabled.

When using the WebSphere v5.0.2 runtime, the WSDL file, SEI and deployment artifacts (serializers and deserializers) are always overwritten. The development artifacts (service bean, complex type beans, holder and helper class) are never overwritten. However, the user will get a warning about overwriting the deployment descriptors if they exist. The user can choose OK to overwrite the deployment descriptors and continue with the scenario, or Cancel to avoid having the descriptors overwritten.

When using the Apache Axis 1.0 runtime, the Axis emitters re-generate every time all the server/client Java files, deploy.wsdd and undeploy.wsdd. WSDL2Java for the service generation scenario will only generate the skeleton implementation file if it does not already exist. If this implementation already exists, it will not be overwritten.

4.27 Problems with using Apache Axis 1.0 runtime

4.28 Web service sample JSP failed to compile

When generating Web service skeletons or proxies from WSDL that uses the same name for one of its <service> element and <port> element, do not use sample JSPs as the test client. The generated sample JSPs contain errors and will not compile. Any attempt to run the sample JSPs on server will result in an ERROR 500 in the browser indicating that the sample JSPs cannot be loaded, and exceptions in the server console indicating that the servlet container was unable to compile the sample JSPs.

4.29 Error with localhost not defined

The Web Service creation wizard may fail during generation of WSDL if the hostname "localhost" is not defined on the computer. The UTC may also fail to launch successfully if "localhost" is not defined.

In Windows, the following entry must be present in the [INSTALL-DRIVE]\WINNT\system32\drivers\etc\hosts file:

127.0.0.1 localhost

In Linux, the following entry must be present in the /etc/hosts file:

127.0.0.1 localhost

4.30 Permanent Limitations when using IBM SOAP runtime

The IBM SOAP runtime should be use mainly for backward compatibility reasons. It is strongly suggested that you use the Web services wizard with the IBM WebSphere 5.0.2 runtime for all production purposes. When using the Web services wizard with the IBM SOAP runtime, the user may run into the following permanent limitations:

4.31 Web service and client using different runtime

If you create Web service from a Java bean or EJB, choosing the IBM SOAP for the service runtime and Apache Axis 1.0 as the client runtime, you may get the error:
WSDL Not found

To avoid the problem, create the Web service first without choosing to generate a proxy. Then create a Web service client from the generated WSDL file.

4.32 Clicking Finish in Web service client wizard

When going through the Web service client wizard, if the user clicks Finish on the Client Environment Configuration page, they'll get the error:

"null" is not resolvable

The workaround is to hit Next in that page and the following page, then hit Finish.

4.33 Selecting router project when creating EJB Web services

When creating Web service from EJB, in the Service Deployment Configuration page, ensure that the Router Project is in the same Enterprise Archive (EAR) as the EJB project. Otherwise, you will not be able to invoke the Web service. For example, if you use the WebSphere 5.0.2 runtime, when you try to invoke the Web service, you will get the error:

Could not find Webservices engine.

4.34 Creating EJB Web services or EJB skeleton using command line

4.35 Web services cheat sheet

In the Create,test and validate a WS-I compliant Web Service Cheatsheet and Create a Web Service from a WSDL file CheatSheet, if you are using the HelloService.wsdl file from the wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples, please modify the service port location according to the different runtime as follow:

For IBM Soap:

location="http://localhost:9080/HelloWorldSample/servlet/rpcrouter"

For Apache Axis or WebSphere 5.0.2 runtime

location="http://localhost:9080/HelloWorldSample/services/Hello_Port"

If you are importing your own wsdl file, please make sure that the location is set properly according to the runtime selected as mentioned above.

Return to the main readme file