更换从 JDK 移除的 Java EE 模块时要考虑哪些标准?

Which criterias to consider when replacing the Java EE modules removed from JDK?

在 JDK 11 中,Oracle 已从 JDK 中删除了以下模块:

 java.xml.ws
 java.xml.bind
 java.xml.ws.annotation
 

以下是已删除模块的可能替代品:

jakarta
com.sun.xml // The reference Implementation

以下linkhttp://openjdk.java.net/jeps/320中,建议将模块替换成sun的参考实现

选择合适的替代品的标准是什么?

这并不是真正的“在 Jakarta 或 Sun 参考实现之间进行选择”。 Jakarta 现在是以前的 Java EE(Oracle 将它交给了 Eclipse 基金会,它有了一个新名称)。这些标准是在 Jakarta 项目下开发的,每个标准(例如 JAX-WS)都有一个参考实现。

其他供应商可能会独立实施该标准。选择不是在“Jakarta 或 Sun 参考实现”之间,而是在参考实现和另一个供应商的实现之间。

例如,查看 JAXB(Java API 用于 XML 绑定)。有一个参考实现,还有 MOXy,这是一个单独的实现,具有一些额外的 non-standard 功能。

这是关于 JAX-WS, which lists two implementations: the reference implementation which has Maven coordinates jakarta.xml.ws:jakarta.xml.ws-api:jar:2.3.3, and Eclipse Metro 的 Jakarta 页面,这是一个替代实现。

选择的话,需要看两者的特点,再决定自己要用什么。

请注意,如果您 运行 您的软件在 Java EE 或 Jakarta EE 应用程序服务器上,则可能已经包含 JAX-WS 的实现。

针对 JAX-WS API 编写您的程序,而不是针对特定的实现,除非您需要使用特定实现的 non-standard 扩展(当然,那会,以后很难切换到不同的实现)。