Java 9弃用了六个包含 Java EE API 的模块,它们很快就会被删除:
javax.activation
javax.activity
javax.rmi
javax.rmi.CORBA
org.omg.*
javax.transaction
javax.xml.bind.*
javax.jws
javax.jws.soap
javax.xml.soap``javax.xml.ws.*
javax.annotation
哪些维护的第三方工件提供了这些 API?它们提供的这些 API 或它们必须提供哪些其他功能并不重要——重要的是,它们是这些模块/包的直接替代品吗?
为了更容易收集知识,我回答了我目前所知道的并将答案作为社区 wiki。我希望人们会扩展它而不是编写自己的答案。
在您投票结束之前:
不要使用已弃用的 Java EE 模块,而是使用以下工件。
JavaBeans Activation Framework(现为 Jakarta Activation )是一项独立技术(可在 Maven Central 上获得):
<dependency> <groupId>com.sun.activation</groupId> <artifactId>jakarta.activation</artifactId> <version>1.2.2</version> </dependency>
来自JEP 320:
除非第三方接管 CORBA API、ORB 实现、CosNaming 提供者等的维护,否则不会有 CORBA 的独立版本。第三方维护是可能的,因为 Java SE 平台支持 CORBA 的独立实现。相比之下,RMI-IIOP 的 API 仅在 Java SE 中定义和实现。除非启动专用的 JSR 来维护 RMI-IIOP,否则不会有独立版本的 RMI-IIOP,或者 API 的管理权由 Eclipse 基金会接管(Java EE 的管理权从 JCP 到 Eclipse 基金会的过渡包括GlassFish及其对 CORBA 和 RMI-IIOP 的实现)。
单机版:
<dependency> <groupId>jakarta.transaction</groupId> <artifactId>jakarta.transaction-api</artifactId> <version>1.3.3</version> </dependency>
(来源)
由于 Java EE 更名为 Jakarta EE ,因此 JAXB 现在由新工件提供:
<!-- API --> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>2.3.3</version> </dependency> <!-- Runtime --> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.3</version> <scope>runtime</scope> </dependency> <!-- Alternative runtime --> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.3</version> <scope>runtime</scope> </dependency>
JAXB 参考实现页面。
替代运行时由 Abhijit Sarkar 提出。
schemagen也xjc可以作为独立 JAXB 发行版的一部分从那里下载。
schemagen
xjc
参考实现:
<!-- API --> <dependency> <groupId>jakarta.xml.ws</groupId> <artifactId>jakarta.xml.ws-api</artifactId> <version>2.3.3</version> </dependency> <!-- Runtime --> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.3.3</version> </dependency>
独立发行版下载(包含wsgen和wsimport)。
wsgen
wsimport
Java Commons Annotations(在 Maven Central 上可用):
<dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>1.3.5</version> </dependency>