Home  >  Article  >  Java  >  Why is the javax.xml.bind package deprecated in Java 11?

Why is the javax.xml.bind package deprecated in Java 11?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-08 16:16:01485browse

Why is the javax.xml.bind package deprecated in Java 11?

Java 11 Package javax.xml.bind is Deprecated

In Java 8, the package javax.xml.bind contains the Java Architecture for XML Binding (JAXB) classes, which allow developers to serialize and deserialize Java objects to and from XML. However, in Java 11, the javax.xml.bind package has been removed.

Why was javax.xml.bind removed in Java 11?

The javax.xml.bind package was part of the Java EE (Enterprise Edition) module. In Java 11, Oracle removed the Java EE modules, including javax.xml.bind. This was part of a larger effort to modularize the Java platform and make it more lightweight.

How to fix the issue?

There are two ways to fix the issue:

1. Use alternate versions of the Java EE technologies.

Oracle has released alternate versions of the Java EE technologies, including JAXB, that can be used with Java 11. To use these alternate versions, you need to add the following Maven dependencies to your project:

<code class="xml"><dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.3.0</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-core</artifactId>
  <version>2.3.0</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.0</version>
</dependency></code>

2. Use Jakarta XML Binding.

Jakarta XML Binding is a new implementation of the JAXB specification that is part of the Jakarta EE platform. Jakarta XML Binding is fully compatible with JAXB, and it can be used as a drop-in replacement for javax.xml.bind. To use Jakarta XML Binding, you need to add the following Maven dependencies to your project:

<code class="xml"><dependency>
  <groupId>jakarta.xml.bind</groupId>
  <artifactId>jakarta.xml.bind-api</artifactId>
  <version>2.3.3</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.3</version>
  <scope>runtime</scope>
</dependency></code>

Note: The latest version of Jakarta XML Binding is 3.0.0. To use it, replace the dependency versions in the above code snippet with 3.0.0.

The above is the detailed content of Why is the javax.xml.bind package deprecated in Java 11?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn