Web services migration best practices


 

+

Search Tips   |   Advanced Search

 

Use these Web services migration best practices when migrating Web services applications.

If we have used the Apache SOAP support to develop Web services client applications in WAS Versions 4, 5, or 5.1, we might need to migrate the applications or the security files for the applications.

The following table summarizes the Web services specifications supported by the WebSphere products.

WAS Version Web services specifications supported
4.0 Apache SOAP 2.2
5.0 and 5.0.1 Apache SOAP 2.3
5.0.2 or later J2EE, also known as (JSR 109)
6.0.x and 6.1 J2EE (JSR 109)
7.0 or later Web Services for Java EE 5 also known as JSR 109

The Apache SOAP 2.2 and Apache SOAP 2.3-based implementations that were available in WAS V4.0.x, 5.0 and 5.0.1 have been deprecated. It is recommended that applications that are using these SOAP implementations migrate to Web Services for Java EE (JSR 109) support that is provided in current WAS versions.

IBM recommends that new Web services be developed using the Web services for Java EE specification.

See Task overview: Implement Web services applications.

Security cannot be directly migrated from SOAP 2.3 to the Java EE standards. After we have migrated the Web services to the Java EE standards, see Secure Web services for V6 applications based on WS-Security.

Follow these best practices for the most optimal migration experience:

The appserver supports the JAX-WS model and the JAX-RPC programming model. JAX-WS is the next generation Web services model extending the foundation provided by the JAX-RPC model.

For transitioning users: Existing JAX-RPC applications wanting to use JAX-WS features must be rewritten using the JAX-WS model. trns

 

Redeploy existing JAX-RPC Web services after migrating to a new release of the appserver

When migrating to a new release of the appserver, IBM recommends that you redeploy the Web services applications. You should redeploy your Web services application in the new appserver environment because of possible changes to the supported levels of Web services specifications and Web services deployment descriptors in each release. To redeploy the Web service, select Deploy Web Services in the Install New Application wizard or use the wsdeploy command. To learn more about this process, see the deploying Web services applications onto appservers documentation.

 

Migrate a 32-bit WAS environment to be compatible with 64-bit

If we are using Web services that are implemented on a WAS 32-bit environment, we need to make sure the Web services are compatible with a 64-bit environment. For a pure Java application this is not an issue. However, if the application code utilizes the Java Native Interface (JNI) code, you should be aware of the following: the JNI enables the Java code running in a virtual machine to operate with applications and libraries written in other languages, such as C, C++, and assembly. Therefore, if the Java EE application uses JNI in a 32-bit environment, the code must be re-compiled in the 64-bit environment. It is possible that the JNI calls can be different after the compilation, as the JNI specifications can change from version to version.

 

Migrate a V5 JAX-RPC client that uses SOAP over JMS to invoke a Web service

A JAX-RPC client that is run on WAS Version 5, can use SOAP over JMS to invoke a Web service that is run on a V5 Application Server. A user ID and password are not required on the target WebSphere MQ queue. After the appserver is migrated to V6.x, and uses the V6.x default messaging feature, client requests can fail because basic authentication is enabled.

The following error message displays when this migration problem occurs:

SibMessage W [:] CWSIT0009W: A client request failed in the appserver with  endpoint <endpoint name> in bus <bus_name> with reason: CWSIT0016E: The user  ID null failed authentication in bus <bus_name>.

When the appserver is migrated to V6.x, and the default messaging provider (service integration technologies) is used, and admin and application security is enabled for the server or the cell, the service integration bus queue destination inherits the security characteristics of the server or the cell by default. If the server or the cell has basic authentication enabled, the client request fails.

The following options are available to solve this problem. The solutions are listed by the level of security that they impose:

 

Migrate Apache SOAP Web services

See Migrate Apache SOAP Web services to Web Services for J2EE standards to learn how to migrate Apache SOAP Web services. This page explains how to migrate Web services that were developed using Apache SOAP to Web services that are developed based on the Web Services for J2EE specification.

 

Migrate Web services assembled with early versions of the appserver Toolkit or Assembly Toolkit

If we are migrating the Web service or Web service components from earlier versions of the appserver Toolkit or Assembly Toolkit, refer to the following hints and tips to improve the success:

.



 

Related


Web services specifications and APIs

 

Related information


Task overview: Implement Web services applications
Migrate Apache SOAP Web services to JAX-RPC Web Services based on Java EE standards
Set HTTP basic authentication for JAX-RPC Web services with the admin console
Deploy Web services applications onto appservers