该 java.xml.bind 和 java.activation 模块已从 JDK 11 中删除。 这些模块包含以下包:
javax.activationjavax.xml.bindjavax.xml.bind.annotationjavax.xml.bind.annotation.adaptersjavax.xml.bind.attachmentjavax.xml.bind.helpersjavax.xml.bind.util此规则会标记使用了先前列出的任何包并封装了自己的 JAXB 实现的应用程序。以前,JAXB 实现可能依赖于可从 JDK 访问的先前列出的 API。但是,从 JDK 11 开始,无法再访问这些 API。
封装了自己的 JAXB 实现的应用程序将需要使用 Java 11 兼容版本(封装了已移除的 API 以及实现)来更新其封装的 JAXB 实现。
另一种解决方案是切换到 Liberty 缺省 JAXB 实现。 可以通过 添加 jaxb-2.2 功能到 Liberty server.xml 配置 文件。 此外,必须移除应用程序中先前封装的任何 JAXB 实现,才能避免类装入问题。
该 schemagen 与
xjc 工具也从 JDK 11 中移除。
这些工具可在 Liberty bin/jaxb 目录下的 Liberty 安装程序。
Java SE 11 一般规则提供的自动修复更新了javax.xml.bind 和 javax.activation模块,以确保它们不会被打包到应用程序中。 模块不打包到应用程序中。 在大多数情况下,此修复将解决此问题并防止类加载问题。
将定制配置复制到应用程序构建文件以启用修订自动化。
有关 JDK 11 更改的更多信息,请参阅 Removal of Java EE and CORBA Modules。