Chapter 29. Migration Guide
Prev |  | Next

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

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

### 29.2.2. @ApplicationPath Annotation Support

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.

Prev |  | Next
Chapter 28. Building and Testing Jersey | Home | Appendix A. Configuration Properties