Web services tools - release notes

1.0 Introduction
2.0 Supported software and specifications
3.0 Changes from the previous release
4.0 Limitations
   4.1 Supply Chain Management sample cannot be run
5.0 Known problems
   5.1 Web Services Explorer
   5.2 Interoperability with IBM SOAP runtime
   5.3 Generating a WSDL document from a DADX file
   5.4 Web tools JSP Generator
   5.5 Using the Universal Test Client
   5.6 Multiple output allowed in certain cases with DADX Web services
   5.7 JDBC driver preference is for use on Linux only
   5.8 Need to update DAD example files if XML extender is not installed in default directory
   5.9 DADX Web services issues
   5.10 DADX Generation Support
   5.11 WSDL errors after importing a Web services file from 4.0.x
   5.12 Problems when using Web services command line
   5.13 Web service creation without an existing server
   5.14 Generating Web services sample application
   5.15 Importing WSDL files with HTTP basic Authentication
   5.16 Problems with using WebSphere v5.0.2 runtime
   5.17 Setting up a DADX group with datasource information
   5.18 Loading client locator using the Universal Test Client
   5.19 Resource preferences not observed
   5.20 Problems with using Apache Axis 1.0 runtime
   5.21 Web service sample JSP failed to compile
   5.22 Problem with Web services command line on German
   5.23 Error with localhost not defined
   5.24 Permanent Limitations when using IBM SOAP runtime
   5.25 Web service and client using different runtime
   5.26 Clicking Finish in Web service client wizard
   5.27 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

The Web Services Explorer supports the following Web browsers:

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 Limitations

4.1 Supply Chain Management sample cannot be run

The Supply Chain Management sample does not run on WAS Express.

5.0 Known problems

5.1 Web Services Explorer

5.2 Interoperability with IBM SOAP runtime

5.3 Generating a WSDL document from a DADX file

5.4 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.

5.5 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.

5.6 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.

5.7 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.

5.8 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.

5.9 DADX Web services issues

5.10 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.

5.11 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.

5.12 Problems when using Web services command line

5.13 Web service creation without an existing server

5.14 Generating Web services sample application

5.15 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.

5.16 Problems with using WebSphere v5.0.2 runtime

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

5.18 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.

 

5.19 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.

5.20 Problems with using Apache Axis 1.0 runtime

5.21 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.

5.22 Problem with Web services command line on German

When running command line tool on Windows in German, certain characters show up as "?" in the command prompt output. This character is likely to be a German Umlaut.

5.23 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

5.24 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:

5.25 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.

5.26 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.

5.27 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