Jakarta EE 9 general information and potential issues

This rule contains general information for migrating to Jakarta EE 9, as well as information on issues that the WebSphere Migration Toolkit for Application Binaries (binary scanner) does not detect.

Jakarta: Package namespaces changed

Due to the package namespace change in Jakarta EE 9, ensure that all dependencies and libraries used by the application have been updated to versions which support Jakarta EE 9.

Liberty Features: Feature names changed

In Liberty, several features have been renamed between Jakarta EE 8 and Jakarta EE 9. For example, the jaxrs feature is now restfulws . For a full list of renamed features, see Jakarta EE 9.1 feature updates. The feature list produced by the binary scanner will contain the updated feature names.

Liberty Features: Technologies no longer enabled by platform features

The jakartaee-9.1 platform feature does not enable several technologies that were previously enabled by the platform features, such as jakartaee-8.0 or javaee-7.0 . The jaxws , now xmlws , and jaxb , now xmlbinding , features are no longer enabled by the platform feature. If you use the platform feature and your application uses these technologies, add the features to your server.xml. Alternatively, you can use the feature list that is produced by the binary scanner.

Servlet: enablePostOnlyJSecurityCheck property default changed

The default behavior for the com.ibm.ws.webcontainer.enablePostOnlyJSecurityCheck Servlet property changed from false to true in Jakarta EE 9. If your application uses j_security_check in html or jsp files test whether this change will affect your application.

Servlet: Response output stream now closed automatically

When an application wraps a response object and uses it in the dispatch forward, before Jakarta EE 9 the response's output stream was not closed before exiting the forward. This closure is required by the Servlet specification. When an application continues writing after the forward, additional data will be written into the response. In Jakarta EE 9 this behavior has been changed so the output stream is now closed. A webcontainer property closeWrappedResponseOutputAfterForward has been added to toggle this behavior. Set the property to false if the previous behavior is required by your application.

Enterprise Beans: Distributed interoperability removed from specification

In Jakarta EE 9, distributed interoperability was removed from the Enterprise Beans specification. Liberty continues to support RMI over IIOP, but note that due to the package rename the remote server must also be using Jakarta EE 9. While Liberty continues to support distributed interoperability in Jakarta EE 9, other server providers might remove support.