49

私は Java EE/EJB に比較的慣れていないので、Java EE コンテナーに関する本をたくさん読んできました。Web コンテナー (JBoss の WAR ファイル) を使用した経験があります。また、JBoss が Java EE コンテナーとしても使用できることも認識しています。

Java EE コンテナーと Web コンテナーの違いは何ですか?

Java EE にも .war ファイルを含めることができることは知っています。それらは異なっており、それらの違いは何ですか? ベンダー固有の好みはありますか?

4

6 に答える 6

88

まず、「J2EE」は廃止された略語で、現在は単に「Java Enterprise Edition」または Java EE と呼ばれています。

サーブレット コンテナー (Tomcat など) とは対照的に、「完全な」Java EE アプリケーション サーバーには EJB コンテナーも含まれます。EJB はエンタープライズ Java Bean であり、たとえばここ(第 IV 章)などで多くのことを読むことができます。EJB は現在バージョン 3.2 (Java EE 7 および Java EE 8) で、以前のバージョンは 3.1 (Java EE 6) および 3.0 (Java EE 5) です。ただし、最大の違いは v2 と v3 の間です。

EJB は、アプリケーションのビジネス ロジックを保持するように設計されています。たとえば、ステートレス セッション Bean は、何かを計算したり、Web サービスやアプリケーションが実行する必要のあるものを表すことができます。メッセージ駆動型 Bean はメッセージ キューをリッスンできるため、非同期通信が必要な場合に役立ちます。シングルトン Bean は、Bean ごとに 1 つのインスタンスを保証します。

ファイルの種類については、EJB は .jar ファイル、Web アプリケーションは .war ファイルにまとめられており、それらを 1 つのアプリケーションに混在させたい場合は、.ear ファイル (「エンタープライズ アーカイブ」) になります。

EJB のほかに、「完全な」アプリケーション サーバーは、トランザクション、セキュリティ、JDBC リソースも処理します。サーブレット コンテナーよりも使用することを強くお勧めしますが、利点には複雑さが伴うため、妥当な時間を費やす必要があります。たとえばWebsphereの扱い方を学ぶ( PayaraWildFlyはもっと簡単で、私のお気に入りです)。JBossWeblogicも非常に人気があり、Tomcat に精通している場合はTomEEをご覧ください。

于 2013-06-19T06:50:26.710 に答える
27

Java EE コンテナー: JBoss、Glassfish などの Java EE サーバー上で実行される EJB、JMS、JTA の実行を管理します。

Web コンテナー: Java EE アプリケーションの Web ページ、サーブレット、および一部の EJB コンポーネントの実行を管理します。Web コンポーネントとそのコンテナーは、Jetty、Tomcat などの Web サーバー上で実行されます。

于 2013-06-20T09:17:14.897 に答える
4

Web コンテナーと EJB コンテナーは、Java EE コンテナーのサブセットです。Java EE コンテナには、アプリケーション クライアント コンテナアプレット コンテナも含まれます。

ドキュメントの内容は次のとおりです。

デプロイメント プロセスでは、Java EE アプリケーション コンポーネントを Java EE コンテナーにインストールします。

  • Java EE サーバー: Java EE 製品のランタイム部分。Java EE サーバーは、EJB [コンテナーと Web コンテナー]* を提供します。

  • Enterprise JavaBeans (EJB) コンテナ: Java EE アプリケーションのエンタープライズ Bean の実行を管理します。エンタープライズ Bean とそのコンテナーは、Java EE サーバー上で実行されます。

  • Web コンテナ: Java EE アプリケーションの JSP ページおよびサーブレット コンポーネントの実行を管理します。Web コンポーネントとその
    コンテナーは、Java EE サーバー上で実行されます。

  • アプリケーション クライアント コンテナ: アプリケーション クライアント コンポーネントの実行を管理します。アプリケーション クライアントとそのコンテナーは、クライアント上で実行されます。

  • アプレット コンテナ: アプレットの実行を管理します。クライアント上で動作する Web ブラウザと Java Plug-in で構成されます。

*ドキュメントでは複数形を使用していますが、実際には Java EE サーバーごとに 1 つの Web コンテナーと 1 つの EJB コンテナーしかありません。

于 2016-12-07T09:20:12.987 に答える