第 5 章 Red Hat JBoss Enterprise Application Platform 应用程序从 Jakarta EE 8 迁移到 10
JBoss EAP 8.1 支持 Jakarta EE 10。Jakarta EE 10 与 JBoss EAP 7 支持的 Jakarta EE 8 规范相比,对 Jakarta EE 进行了大量更改。在本章中,应用程序开发人员准备将其应用从 JBoss EAP 7 迁移到 JBoss EAP 8.1 时,必须了解与 Jakarta EE API 中的兼容性差异。
本章的重点是 Jakarta EE 8 和 Jakarta EE 10 之间的差异,应用程序开发人员将其应用迁移到 JBoss EAP 8.1 可能需要处理,而不是如何进行迁移。有关 JBoss EAP 7 到 JBoss EAP 8.1 应用程序迁移以及红帽提供的工具的更多信息,请参阅 简化您的 JBoss EAP 8.1 迁移,并了解 应用程序迁移更改。
5.1. javax 到 jakarta Package Namespace 更改 复制链接链接已复制到粘贴板!
从 Jakarta EE 8 和 EE 10 之间存在最大兼容性影响差异是,将 EE API Java 软件包从 javax configured 重命名为 jakarta …。
自 Java EE 移到 Eclipse Foundation 并建立 Jakarta EE 后,Eclipse 和 Oracle 同意,Jakarta EE 社区无法发展 javax. 软件包命名空间。因此,为了继续演进 EE API,从 Jakarta EE 9 开始,所有 EE API 所使用的软件包已从 javax 2019 改为 jakarta Servernbsp。这个更改不会影响作为 Java SE 一部分的 javax 软件包。
适应此命名空间的改变是将应用程序从 JBoss EAP 7 迁移到 JBoss EAP 8 的最大变化。迁移到 Jakarta EE 10 的应用需要:
-
将任何导入语句或其他源代码使用来自
javax软件包中的 EE API 类更新到jakarta -
更新任何以
javax开头的 EE 指定系统属性或其他配置属性的名称,而不是以jakarta 开头。 -
将标识实施类的资源名称从
META-INF/services/javax.[rest_of_name]更改为META-INF/services/jakarta.[rest_of_name],用于任何通过java.util.ServiceLoader机制启动的 EE 接口或抽象类的实现。
Red Hat Migration Toolkit 可以帮助更新应用程序源代码中的命名空间。如需更多信息,请参阅 如何使用 Red Hat Migration Toolkit for Auto-Migration of Application to the Jakarta EE 10 命名空间。对于源代码迁移不是一个选项,开源 Eclipse Transformer 项目会提供 bytecode 转换工具,来将现有 Java 存档从 javax 命名空间转换为 jakarta。