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