WildFly 25 是否使用 jakarta.* api,或者 javax.* api 是否仍然兼容

Does WildFly 25 use jakarta.* api or are the javax.* apis still compatible

提问人:Ruchi 提问时间:1/27/2023 最后编辑:BalusCRuchi 更新时间:2/28/2023 访问量:1162

问:

我已经将我的项目从 java 11 更新到 17,因此我不得不将我的 wildfly 版本从 15 更新到 25,因为 java17 的战争与 wildfly 15 不兼容。在这里,我的问题是我是否必须将我的 javax 迁移到雅加达,因为在 wildfly 8 发布后,wildfly 现在支持 Jakarta EE 17。那么,从javax搬到雅加达真的是强制性的,还是有一个解决方法。

Jakarta-ee Wildfly 雅加达-迁移

评论

0赞 meaningqo 1/27/2023
根据文档,它应该是 Jakarta-EE 版本:wildfly.org/news/2021/10/05/WildFly25-Final-Released The standard WildFly 25.0.0 distribution is a Jakarta EE 8 compatible implementation, compatible with both the Full Platform and the Web Profile. Evidence supporting our certification is available for the Full Platform and for the Web Profile.
0赞 Ruchi 1/27/2023
@meaningqo 真的很抱歉,但我没有得到正确的理解。就像我必须迁移到雅加达的wildfly 25一样,或者我仍然可以使用javax包,并且在.xml文件中也是如此。

答:

6赞 BalusC 1/27/2023 #1

Jakarta EE 8 stil 使用该软件包。它本质上与 Java EE 8 完全相同,只是品牌名称发生了变化。 Jakarta EE 9 是第一个使用该软件包的。雅加达EE 10延续了这一趋势。javax.*jakarta.*

请注意,WildFly 以“WildFly”和“WildFly Preview”的形式出现。根据文档

WildFly 版本 17 - 26 是 Jakarta EE 8。
WildFly 预览版 22 - 26 是 Jakarta EE 9。
WildFly WildFly 预览版 27 是 Jakarta EE 10。

在您的具体情况下,您显然有一个 Jakarta EE 8 应用程序和一个 WildFly 25 服务器。因此,只要您选择了“WildFly 25”而不是“WildFly Preview 25”,那么您就可以了。一种快速验证方法是盲目地将目标 WAR 部署到服务器,并检查它是否在运行时不会在类上抛出任何错误。javax.*NoClassDefFoundErrorjavax.*

顺便说一句,支持 Jakarta EE 8 的最新 WildFly 版本是 26,这是目前仍在积极维护的版本(在撰写本文时,26.1.3 仅在 9 天前发布,而 25.x 不再维护超过一年),所以我强烈建议从 WildFly 25 进一步升级到 WildFly 26。

也就是说,你真的应该迁移到下一步,因为这显然是一条死胡同。jakarta.*javax.*