【问题标题】:WildFly Jakarta EE and legacy projectsWildFly Jakarta EE 和遗留项目
【发布时间】:2021-03-02 15:16:36
【问题描述】:

我们拥有由不同模块/项目组成的 Java EE 8 EAR。它目前在 WildFly 19.0.0 Final 上运行,但我们正在考虑将其移动到最新的 WildFly (Jakarta EE) 上。如果我从版本 21.0.0 中正确理解 WildFly 是 100% Jakarta EE Full & Web 发行版,如果我们想迁移到 jakarta ee,我们所要做的就是将依赖关系 javaee-api 更改为 jakarta.jakartaee-api 并更新我们从 javax.* 到 jakarta.* 的所有导入 对吗?

  1. 我们可以在 WildFly >= 21.0.0 上按原样运行我们的应用程序,还是我们必须使用 jakarta 依赖项重新编译它?

  2. 因为一些子项目是遗留的(即它们具有 javax.* 导入)是否可以构建一个单一的 EAR,其中一些子项目具有 javax.* 导入而其他子项目具有 jakarta.* 导入?

一般来说,处理我们 EAR 的一些子项目是遗留的(即它们具有 javax.* 导入)而其他可以迁移到 jakarta 依赖项和导入的场景的最佳方法是什么?

谢谢

【问题讨论】:

    标签: jakarta-ee wildfly java-ee-8


    【解决方案1】:

    WildFly 21 与 JakartEE 8 兼容,除知识产权外与 JavaEE 8 基本相同,因此您无需更改任何内容。 WildFly 22 也是如此。据我所知,这个想法是提供 2 种不同的发行版,就像 JavaEE 8 所做的那样。

    WildFly 提供 JakartaEE 9 预览版和 WildFly 22 Alpha,但这是一个不同的发行版。如果您使用托管部署,最后一部分可以“转换”您的字节码,否则您将不得不使用新包重新构建您的项目。

    【讨论】:

    • 那么你是说我仍然可以使用 WildFly 21.0.0,但我必须修改依赖项并从 WildFly 22 开始导入?当我的 EAR 的某些部分是遗留的并且无法迁移到 jakarta 进口时,我该怎么办?
    • 不,我是说在您使用 WildFly 的 JakartaEE9 发行版(现在称为预览版)之前,您无需执行任何操作。 WildFly 22 应该同时提供。 iirc WildFLy 还提供了一种自动转换应用程序的方法。你应该阅读wildfly.org/news/2020/11/12/Jakarta-EE-9-with-WildFly-Preview
    • 哇,所以在预览模式下,我们可以继续使用所有遗留的 javax.* 导入和 java-ee8-api 依赖项,托管部署将在部署时自动神奇地更新所有这些是时候使用雅加达了吗??
    • 是的,但您需要提供存档并使用 cli iirc 进行部署。这是一个阿尔法,所以油漆没有完全干燥;)
    猜你喜欢
    • 1970-01-01
    • 2021-03-03
    • 2011-01-07
    • 2021-04-14
    • 2021-06-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多