Links: Table of Contents | Single HTML

Chapter 29. Migration Guide

29.1. Migrating from Jersey 2.32+ to 3.0.x.

29.1.1. Breaking Changes

  • 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.

    Due to required jakartification several modules where omitted (because of not satisfied dependencies). Or require higher JDK (11+).

    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.

29.1.2. Removed deprecated APIs

  • Jackson 1 support was removed.

29.1.3. Application servers for Jersey

Note that only a few servers support Jakarta EE 9 compatible Servlet API and they are tested with Jersey. Those are: GlassFish 6, Grizzly 3, Jetty 11 (JDK 11+ required), Payara 6, and Tomcat 10.

29.2. Migrating from Jersey 3.0.x to 3.1.1.

29.2.1. Breaking Changes

  • 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.

  • 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.