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

问题描述 投票:0回答:1

我已将我的项目从 Java 11 更新到 17,因此我必须将我的 WildFly 版本从 15 更新到 25,因为 Java 17 的 WAR 与 WildFly 15 不兼容。问题是,我是否必须从

javax
迁移
jakarta
因为 WildFly 在 WildFly 17 发布后现在支持 Jakarta EE 8?那么,是否真的必须从
jakarta
移动到
javax
还是有解决方法?

jakarta-ee wildfly jakarta-migration
1个回答
6
投票

Jakarta EE 8 仍然使用

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

请注意,WildFly comes 为“WildFly”和“WildFly Preview”。根据文档

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

在您的具体情况下,您显然有一个 Jakarta EE 8 应用程序和一个 WildFly 25 服务器。因此,只要您选择“WildFly 25”而不是“WildFly Preview 25”,就可以了。验证的一种快速方法是将您的

javax.*
目标 WAR 盲目部署到服务器,并检查它在运行时是否不会在
NoClassDefFoundError
类上引发任何
javax.*
错误。

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

也就是说,您确实应该迁移到

jakarta.*
作为下一步,因为
javax.*
显然是一个死胡同。

© www.soinside.com 2019 - 2024. All rights reserved.