根据发布说明,Java 11删除了Java EE模块:
java.xml.bind (JAXB) - REMOVED
java8 - OK
Java 9 -弃用
Java 10 -弃用
Java 11 -
删除
更多信息请参见JEP 320。
您可以通过使用Java EE技术的替代版本来解决这个问题。只需添加包含所需类的Maven依赖项:
<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>
雅加达EE 8更新(2020年3月)
你可以通过使用Jakarta EE 8的Jakarta XML Binding来解决这个问题,而不是使用旧的JAXB模块:
<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>
雅加达EE 9更新(2020年11月)
使用最新版本的Jakarta XML Binding 3.0:
Jakarta EE 9 API Jakarta .xml.bind- API
兼容的实现jaxb-impl
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>3.0.0</version>
<scope>runtime</scope>
</dependency>
注意:Jakarta EE 9采用了新的API包名称空间Jakarta .xml.bind。*,因此更新import语句:
javax.xml.bind -> jakarta.xml.bind
雅加达EE 10更新(2022年6月)
使用最新版本的Jakarta XML Binding 4.0(需要Java SE 11或更新版本):
Jakarta EE 10 API Jakarta .xml.bind- API
兼容的实现jaxb-impl
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>4.0.0</version>
<scope>runtime</scope>
</dependency>