The existing EE8→EE9 migration page at https://openliberty.io/docs/latest/reference/diff/jakarta-ee-diff.html covers several behaviour differences when migrating from jaxrs-2.1 (Apache CXF) to restfulWS-3.0 (RESTEasy). Two additional confirmed differences should be added in the same format as the existing entries.
1. UriInfo.getPath() — leading slash
jaxrs-2.1 behavior
UriInfo.getPath() returns the path of the current request relative to the base URI without a leading slash. For example, for a request to /myapp/resources/test, getPath() returns resources/test. This applies in both root resources and sub-resource locators.
restfulWS-3.0 behavior
UriInfo.getPath() returns the path with a leading slash. For the same request, getPath() returns /resources/test. This applies in both root resources and sub-resource locators.
2. HttpHeaders.getRequestHeader() for an absent header
jaxrs-2.1 behavior
HttpHeaders.getRequestHeader(String name) returns null when the named header is not present in the request.
restfulWS-3.0 behavior
HttpHeaders.getRequestHeader(String name) returns an empty List (never null) when the named header is not present in the request. Code that checks if (values == null) will therefore behave differently after migration — the null check will never be true, and any logic gated on it will be skipped silently.
The existing EE8→EE9 migration page at https://openliberty.io/docs/latest/reference/diff/jakarta-ee-diff.html covers several behaviour differences when migrating from
jaxrs-2.1(Apache CXF) torestfulWS-3.0(RESTEasy). Two additional confirmed differences should be added in the same format as the existing entries.1.
UriInfo.getPath()— leading slashjaxrs-2.1behaviorUriInfo.getPath()returns the path of the current request relative to the base URI without a leading slash. For example, for a request to/myapp/resources/test,getPath()returnsresources/test. This applies in both root resources and sub-resource locators.restfulWS-3.0behaviorUriInfo.getPath()returns the path with a leading slash. For the same request,getPath()returns/resources/test. This applies in both root resources and sub-resource locators.2.
HttpHeaders.getRequestHeader()for an absent headerjaxrs-2.1behaviorHttpHeaders.getRequestHeader(String name)returnsnullwhen the named header is not present in the request.restfulWS-3.0behaviorHttpHeaders.getRequestHeader(String name)returns an emptyList(nevernull) when the named header is not present in the request. Code that checksif (values == null)will therefore behave differently after migration — the null check will never be true, and any logic gated on it will be skipped silently.