web-dev-qa-db-ja.com

Java EE Web Profile vs Java EE Full Platform

Java EE Webプロファイル認定サーバー(JOnASなど)とJava EEフルプラットフォーム認定サーバー(JBoss ASなど)の違いは何ですか?

57
Voulzy

未来

2017年後半、オラクルは Java EE に対する責任を Eclipse Foundation に与えました。 Java EE 8以降の将来のバージョンは、 Eclipse Enterprise For Java(EE4J) 。または Project EE4J 。または、 EE.next。または Jakarta EE 。ブランディングはここ数か月で変化しています。

Oracleからの移行の一環として、EclipseチームはJava EE 8を Jakarta EE 8 として再リリースします。これには、コードのビルドとビルドのための新しいインフラストラクチャが使用されます。同じEE動作、同じ内部命名、パッケージ構造。したがって、Java EE WebプロファイルとJava EEフルプラットフォームについて以下で説明する問題は引き続き適用されます。

ただし、新しい機能を提供する次のバージョン(Jakarta EE 9)では、パッケージの新しい命名と、場合によってはEEを構成するさまざまなAPIの命名が必要になる可能性があります。そのため、動作の上位互換性を期待できますが、名前の変更により、バージョン9以降は not がドロップインバイナリ置換になります。世界の終わりではありません。これは、さまざまなクラスファイルでimportパッケージ名を変更するだけのことです。詳細とリンクについては、 this および this を参照してください。

さらに、EclipseチームとJakarta EEコミュニティは、EEのさまざまな部分を自由に再定義または再編成できます。したがって、以下のJava EE WebプロファイルとJava EEフルプラットフォームの説明は、Jakarta EE 9以降には直接適用されない場合があります。

EEの基礎となる最新のJava SEバージョンを使用している場合の別の注意…Java SE 11では、いくつかのモジュールが削除されています。 Java EE関連部分は、ジャカルタEEプロジェクトの新しいホームに移動しています。 [〜#〜] corba [〜#〜] などのその他のものは、関心のある組織による採用のために提供されています。 JEP 320 を参照してください。

Java EE 8

Java EE 8 は2017年にリリースされました。 バージョンの履歴 を参照してください。

JSR 366:Java Platform、Enterprise Edition 8(Java EE 8)Specification を参照してください。

Java EEは、 Java Standard Edition(Java SE) のスーパーセットです。 Java EE 8の実装は、Java SE 8以降の実装でもあります。

JSRおよび仕様へのリンクとともに、Oracleが公開しているJava EE 8テクノロジーの list を参照してください。

すべてのプロファイル

次のテクノロジーは、すべてのJava EEプロファイルに存在する必要があります。

Java SE バージョン 8(以降)

•Common Annotations仕様(Resource、Resources、PostConstruct、PreDestroy)で定義されているリソースおよびコンポーネントのライフサイクルアノテーション

[〜#〜] jndi [〜#〜] 「Java:」ネーミングコンテキスト

•JavaトランザクションAPI(JTA)

ウェブプロファイル

Web Profile は、完全なJava EEプラットフォームの特定のサブセットであり、一般的に使用される要素に焦点を当てています。 Apache TomEE / - などの製品で実装されているか、または Eclipse Jetty およびアドオン

•すべてのJava EEプロファイルに必要な基本レベルのアイテム(上記のリスト:Java SE 8、ライフサイクルアノテーション、JNDI Java:コンテキスト、およびJTA)

•サーブレット4.0( JSR 369

•JavaServer Pages(JSP)2.3

•式言語(EL)3.0( JSR 341

•他の言語のデバッグサポート(JSR-45)1.0

•JavaServer Pages(JSTL)1.2の標準タグライブラリ

•JavaServer Faces(JSF)2.3( JSR 372

•RESTful Webサービス(JAX-RS)2.1のJava API

•WebSocket(WebSocket)1.1のJava API( JSR 356

•JSON処理用のJava API(JSON-P)1.1( JSR 374

•JSONバインディング用のJava API(JSON-B)1.0( JSR 367

•Javaプラットフォームの一般的な注釈(JSR-250)1.3•エンタープライズJavaBean(EJB)3.2 Lite

•Java Transaction API(JTA)1.2

•Java Persistence API(JPA)2.2

Bean Validation 2.0( JSR 380

•マネージドBean 1.0

•インターセプター1.2

•Java EEプラットフォーム2.0のコンテキストと依存性注入

•Java 1.0の依存性注入

•Java EEセキュリティAPI 1.0

•Javaコンテナ用認証サービスプロバイダーインターフェイス(JASPIC)1.1

サーブレットのみ

Webプロファイル実装を使用するより軽い代替手段として、 Apache Tomcat /などのJava Servlet/JSP実装で開始できます。 または Eclipse Jetty 。プロファイルとして公式ではありませんが、このアプローチは非常に人気があります。 web container としても知られています。

[〜#〜] http [〜#〜]web server

•サーブレット

•JavaServer Pages(JSP)

•式言語(EL)

WebSocket

•JNDI

このセットアップを使用する場合、さまざまなJava EEテクノロジーから選択的に利益を得るために、独立したライブラリを選択的に追加できます。たとえば、 Vaadin Framework を使用してWebアプリを構築する私自身の仕事では、EEではなくJava SEを使用し、 を使用します。/Tomcat 、および Bean Validation 実装ライブラリを手動で追加します。これはJava EEテクノロジーのリスト。

完全なJava EE

次のテクノロジーが必要です。

•Webプロファイルのすべてのアイテム

•EJB 3.2(オプションになったEJBエンティティBeanと関連するEJBQLを除く)

•JMS 2.0

•JavaMail 1.6

•コネクタ1.7

•WebServices 1.4

•同時実行ユーティリティ1.0

•Batch1.0

•Java EE管理1.1

•JACC 1.5

•JSPデバッグ1.0

•Webサービスメタデータ2.1

次のテクノロジーはオプションです。

•EJB 3.2以前のエンティティBeanおよび関連するEJB QL

•JAX-RPC 1.1

•JAXR 1.0

•Java EE Deployment 1.2

以下は、ネストされた要件グループを示す図です。

diagram of nested groups of various technologies required by Java SE 8, web containers, Java EE 8 Web Profile, Java EE 8 Required, and Java EE 8 Optional

この図の上のリストはより正確な場合があります。この図は再確認されていません。

38
Basil Bourque

Java EE 6仕様 (JSR 316)には次のリストが含まれています。

完全なJava EE製品要件

次のテクノロジーが必要です。

  • EJB 3.1
  • サーブレット3.0
  • JSP 2.2
  • EL 2.2
  • JMS 1.1
  • JTA 1.1
  • JavaMail 1.4
  • コネクタ1.6
  • Webサービス1.3
  • JAX-RPC 1.1
  • JAX-WS 2.2
  • JAX-RS 1.1
  • JAXB 2.2
  • JAXR 1.0
  • Java EE Management 1.1
  • Java EE Deployment 1.2
  • JACC 1.4
  • ジャスピック1.0
  • JSPデバッグ1.0
  • JSTL 1.2
  • Webサービスメタデータ2.1
  • JSF 2.0
  • 共通の注釈1.1
  • Java Persistence 2.0
  • Bean Validation 1.0
  • マネージドBean 1.0
  • Java EE 1.0のコンテキストと依存性注入
  • Java 1.0の依存性注入

オプションのテクノロジーはありません。

Webプロファイルの定義

以下のテクノロジーは、Webプロファイルの必須コンポーネントです。

  • サーブレット3.0
  • JavaServer Pages(JSP)2.2
  • 式言語(EL)2.2
  • 他の言語のデバッグサポート(JSR-45)1.0
  • JavaServer Pages(JSTL)1.2の標準タグライブラリ
  • JavaServer Faces(JSF)2.0
  • Javaプラットフォーム(JSR-250)1.1の一般的な注釈
  • エンタープライズJavaBean(EJB)3.1 Lite
  • Java Transaction API(JTA)1.1
  • Java Persistence API(JPA)2.0
  • Bean Validation 1.0
  • マネージドBean 1.0
  • インターセプター1.1
  • Java EE Platform 1.0のコンテキストと依存性注入
  • Java 1.06の依存性注入

Webプロファイルにはオプションのコンポーネントはありません。

Java EE 7の場合、すべてのEEテクノロジーの リスト があり、Webプロファイルに含まれているものも示します。 JAX-RSなどのWebプロファイルに含まれるようになりました。

6
Martin