1. ホーム

[解決済み】Java EE APIによる非推奨のJPMSモジュールの代替品

2022-04-01 11:53:03

質問

ジャバ9 Java EE APIを含む6つのモジュールが廃止になりました。 であり、それらは 削除される をすぐにでも導入したい。

  • java.activation(ジャバアクティベーション javax.activation パッケージ
  • java.corba javax.activity , javax.rmi , javax.rmi.CORBA および org.omg.* パッケージ
  • java.トランザクション javax.transaction パッケージ
  • java.xml.bind をすべて javax.xml.bind.* パッケージ
  • java.xml.ws javax.jws , javax.jws.soap , javax.xml.soap およびすべての javax.xml.ws.* パッケージ
  • java.xml.ws.アノテーション javax.annotation パッケージ

これらのAPIを提供するサードパーティの保守的な成果物はどれですか?それらのAPIがどれだけ優れているか、他にどのような機能を提供しているかは問題ではありません。重要なのは、それらのモジュールやパッケージの代わりになるものかどうかです。

知識を集めやすくするために、私が今まで知っていることを回答し、その回答をコミュニティwikiにしました。自分で答えを書くのではなく、みんながそれを拡張してくれることを願っています。


閉じるに投票する前に

  • そうですね、すでに個々のモジュールに関する質問もあり、この質問に対する回答はもちろんその情報と重複することになります。しかし、AFAIKではこれらすべてについて学べる単一のポイントはなく、これは多くの価値を持っていると思います。
  • 図書館の推薦を求める質問は、通常、意見的な回答やスパムを引き寄せる傾向があるため、オフトピックとみなされますが、ここではそれが当てはまらないと思います。有効なライブラリの集合は明確に定義されています。それらは特定の標準を実装しなければなりません。それ以外のことは重要ではありませんから、意見やスパムのリスクはあまりないと思います。

解決方法は?

非推奨のJava EEモジュールを使用する代わりに、以下のアーティファクトを使用します。

JAF ( java.activation(ジャバアクティベーション )

JavaBeans Activation Framework(現 ジャカルタ・アクティベーション ) は、スタンドアロン技術です (Maven Central で利用可能)。

<dependency>
    <groupId>com.sun.activation</groupId>
    <artifactId>jakarta.activation</artifactId>
    <version>1.2.2</version>
</dependency>

( ソース )

CORBA ( java.corba )

から JEP 320 :

CORBA API、ORB実装、CosNamingプロバイダーなどのメンテナンスを第三者が引き受けない限り、CORBAのスタンドアロン版は存在しない。サードパーティによるメンテナンスが可能なのは、Java SE PlatformがCORBAの独立した実装を推奨しているためです。一方、RMI-IIOPのAPIは、Java SE内のみで定義・実装されています。RMI-IIOPをメンテナンスするための専用のJSRが開始されるか、APIのスチュワードシップがEclipse Foundationに引き継がれない限り、RMI-IIOPのスタンドアロン版は存在しません(Java EEのスチュワードシップがJCPからEclipse Foundationに移行したことが、これにあたります)。 GlassFish およびCORBAとRMI-IIOPの実装)。

JTA ( java.トランザクション )

スタンドアローン版。

<dependency>
    <groupId>jakarta.transaction</groupId>
    <artifactId>jakarta.transaction-api</artifactId>
    <version>1.3.3</version>
</dependency>

( ソース )

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.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氏によってもたらされました。 .

schemagenxjc は、スタンドアロンのJAXBディストリビューションの一部として、そこからもダウンロードすることができます。

参照 リンク回答 .

JAX-WS ( java.xml.ws )

参考実装です。

<!-- 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>

スタンドアロン版ダウンロード (を含む wsgenwsimport ).

共通アノテーション( java.xml.ws.アノテーション )

Javaコモンズアノテーション (Maven Centralで入手可能)。

<dependency>
    <groupId>jakarta.annotation</groupId>
    <artifactId>jakarta.annotation-api</artifactId>
    <version>1.3.5</version>
</dependency>

( ソース )