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.