一尘不染

使用Java EE API替换不推荐使用的JPMS模块

java

Java 9 已弃用了六个包含Java EE API的模块,它们将很快被删除:

  • java.activation with javax.activation package
  • java.corba with javax.activity, javax.rmi, javax.rmi.CORBA, and org.omg.* packages
  • java.transaction with javax.transaction package
  • java.xml.bind with all javax.xml.bind.* packages
  • java.xml.ws with javax.jws, javax.jws.soap, javax.xml.soap, and all javax.xml.ws.* packages
  • java.xml.ws.annotation with javax.annotation package

哪些维护的第三方工件提供了这些API?它们提供这些API的性能如何或它们必须提供哪些其他功能都没关系-重要的是,它们是这些模块/软件包的直接替代品吗?

为了更轻松地收集知识,我用到目前为止的知识进行了回答,并将答案设置为社区Wiki。我希望人们能扩展它而不是自己写答案。

在你投票关闭之前:

  • 是的,各个模块上已经存在一些问题,对此问题的答案当然会重复该信息。但是AFAIK并没有一点可以了解所有这些知识,我认为它具有很大的价值。
  • 要求图书馆推荐的问题通常被认为是题外话,因为“它们往往会吸引有目的的答案和垃圾邮件”,但我认为这并不适用。有效库的集合已明确划定:它们必须实现特定的标准。除此之外,其他任何事情都不重要,因此我认为意见和垃圾邮件风险不大。

阅读 734

收藏
2020-02-29

共1个答案

一尘不染

替使用不推荐使用的Java EE模块,而使用以下构件。

JAF(java.activation)

JavaBeans激活框架是一种独立的技术(在Maven Central上可用):

<dependency>
    <groupId>com.sun.activation</groupId>
    <artifactId>javax.activation</artifactId>
    <version>1.2.0</version>
</dependency>

CORBA(java.corba)

从JEP 320起:

除非第三方接管CORBA API,ORB实现,CosNaming提供程序等的维护,否则不会有CORBA的独立版本。由于Java SE平台认可CORBA的独立实现,因此可以进行第三方维护。相反,RMI-IIOP的API仅在Java SE中定义和实现。除非启动专用的JSR来维护RMI-IIOP,否则它将没有独立版本的RMI-IIOP,或者Eclipse Foundation接管了API的管理(Java EE从JCP到Eclipse Foundation的管理过渡包括GlassFish)以及CORBA和RMI-IIOP的实现)。

JTA(java.transaction)

独立版本:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.2</version>
</dependency>

(来源;看看如何使用1.2以及即将1.3在类和模块上使用的路径。)

JAXB(java.xml.bind)

自从Java EE重命名为Jakarta EE以来,JAXB现在由新的工件提供:

<!-- API -->
<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>2.3.2</version>
</dependency>

<!-- Runtime -->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.2</version>
</dependency>

不建议使用旧工件jaxb-core,因为它们包含拆分包。jaxb-impl

JAXB参考实现页面。

schemagenxjc可以作为独立的JAXB发行版的一部分在此下载。

JAX-WS(java.xml.ws)

参考实现:

<!-- API -->
<dependency>
    <groupId>jakarta.xml.ws</groupId>
    <artifactId>jakarta.xml.ws-api</artifactId>
    <version>2.3.2</version>
</dependency>

<!-- Runtime -->
<dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-rt</artifactId>
    <version>2.3.2</version>
</dependency>

独立发行版下载(包含wsgen和wsimport)。

常用注释(java.xml.ws.annotation)

Java Commons批注(在Maven Central上可用):

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.1</version>
</dependency>
2020-02-29