Jakarta EE 10 general information and potential issues

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

Expression Language: Values cast to Object

Expression Language values used in JSP files must now be cast to Object. For example, the expression ve.getValue(pageContext.getELContext()) must become (Object) ve.getValue(pageContext.getELContext()). This is due to the use of generic types within Expression Language.

Servlet: DisableXPoweredBy property removed

The DisableXPoweredBy web container property is not supported starting in Jakarta Servlet 6.0. This custom property could be configured in both WebSphere traditional and Liberty for Servlet 5.0 and earlier. Starting in Servlet 5.0 the behavior was changed to disable X-Powered-By by default. The Servlet 6.0 specification removed the recommendation that containers provide an X-Powered-By header.

Faces: Namespace URIs updated to URNs

URIs for Faces namespaces have been updated to URNs for Jakarta Faces 4.0. The current URIs will continue to work in Faces 4.0, so no changes are required in applications. See this article for more information.

Faces: JSF renamed to Faces in log keys and strings

Log message keys for messages emitted by Jakarta Faces have been renamed from jsf.* to faces.*. Additionally, messages have replaced all references to JSF with references to Faces. This should not affect application code, but ensure processing of Faces log messages handles the change.

Faces: Element namespace prefix should be updated to xmlns:faces

Faces which define a xmlns:jsf namespace prefix should update it to xmlns:faces to be consistent with Faces 4.0 documentation and examples. There is no requirement to make this change and no issue will occur if the namespace prefix remains xmlns:jsf in Faces 4.0.

RESTFul Web Services and XML Web Services: Global Handlers are no longer automatically enabled

In previous Liberty feature versions of RESTful Web Services (JAXRS) and XML Web Services (JAXWS), the Web Services Global Handler SPI package com.ibm.wsspi.webservices.handler was automatically enabled. Starting in Jakarta EE 10, Global Handlers are disabled by default. As with previous versions, you will need to create a user feature to configure a Global Handler. However, as of this release, you must also add the io.openliberty.globalhandler-1.0 protected Liberty feature to your user feature's manifest file in order to enable the SPI package.

For information on Liberty's Jakarta EE 10 support, see Jakarta EE 10, MicroProfile 6, and Java SE 20 support in Open Liberty 23.0.0.3.

See Differences between Jakarta EE 10 and 9.1 for more migration information.