Table of Contents
The most fundamental change in Jersey 3.0.0 and later is namespace change.
Since Jakarta EE 9 the jakarta.
namespace is introduced as a replacement
for javax namespace from Java EE.
Some Jersey modules require higher versions of Java SE. See Section 2.1, “Java SE Compatibility”.
Examples and tests are reduced in quantity (so you probably will not find all those examples which were available in the 2.32 version).
ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE is by default
true
.
Jersey 3.1.0+ is the implementation of Jakarta RESTful WebServices 3.1, which is part of Jakarta EE 10. Jakarta EE 10 defines the minimum JDK 11 requirement and hence Jersey no longer supports JDK 8.
Some Jersey modules require higher versions of Java SE. See Section 2.1, “Java SE Compatibility”.
Since Jersey 3.1.0+ the getRequestHeader(String name)
method of the
ClientRequest
class returns NULL (instead of an empty List) in case if
the specified header does not exist.
Jersey 3.1 supports @ApplicationPath
annotation by every container, not only the
Servlet
container. This can affect tests, as well as deployments to containers
where the annotation used to be ignored by previous versions of Jersey.
Jersey 3.0.x, and 3.1.0 - 3.1.3 Jetty modules (jersey-jetty-connector, jersey-container-jetty-http, jersey-container-jetty-servlet, jersey-test-framework-provider-jetty) are based on Jetty 11, which is Jakarta EE 9 related.
Jersey 3.1.4 modules use Jetty 12 which is Jakarta EE 10 related (as well as Jersey 3.1.x). Jetty 12 dependencies use modules names different from Jetty 11.
Jersey 3.1.4 starts to support Jackson 2.15 which comes with default limitations for the length of parsed text, numbers, and nesting depth. Jersey keeps the Jackson default value, but it allows to override the maximum length of parsed text using the MessageProperties.JSON_MAX_STRING_LENGTH property if needed.