12

EJB について読み始めたところです。

私がそれに挑戦するときでさえ、私が彼らについて聞いたことに基づいていくつかの質問があります.

  1. EJB を使用するアプリケーションは、常に EAR としてデプロイする必要がありますか?
  2. ECLIPSE を使用し、ANT を使用せずに、EJB を含むアプリケーションを他の Java Web プロジェクトと同じようにデプロイできますか?
4

1 に答える 1

28

1.ejb を使用するアプリケーションは、常に EAR としてデプロイする必要がありますか?

いいえ。

EJB モジュールは JAR にアセンブルされます。命名規則として myapp-ejb.jar と呼びましょう。

これには、EJB コードと、EJB 2.x で ejb-jar.xml と呼ばれるデプロイメント記述子ファイルが含まれています。EJB 3.0 では、サーバーがデプロイメントを理解するために必要なアノテーションがコード自体に含まれているため、デプロイメント記述子はオプションです。デプロイメント記述子/アノテーションは、JNDI、DataSource ルックアップなどの EJB デプロイメントに必要な基本的なものをカバーしています。

複数の EJB モジュールと他の Web モジュール (war) の集合がEARを構成します。@Isaac が指摘したように、EAR に WAR ファイルを含める必要はありません。EAR ファイルの唯一の条件は、任意の種類の J2EE モジュールが少なくとも 1 つ含まれていることです。

META-INF/application.xmlEAR には、EAR に存在するすべての EJB jar と war をリストする が必要です。したがって、通常は複数の EJB モジュールがある場合は EAR を選択します。したがって、通常のデプロイメントは EAR です。

http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/undejdev003.htmから取得したこのファイルの例を以下に示します。これはあなたが読むのに良い記事です。

<application>
  <display-name>master-application</display-name>
  <module>
    <ejb>ejb1.jar</ejb>
  </module>
  <module>
    <ejb>ejb2.jar</ejb>
  </module>
  <module>
    <java>appclient.jar</java>
  </module>
  <module>
    <web>
        <web-uri>clientweb.war</web-uri>
        <context-root>webapp</context-root>
    </web>
  </module>
  <module>
    <ejb>ejb3.jar</ejb>
  </module>

2.ECLIPSEを使用し、ANTを使用せずに、EJBを含むアプリケーションを他のJava Webプロジェクトと同様にデプロイできますか

はい、EAR/JAR がアセンブルされると、(必要に応じて Eclipse を介して) サーバーにデプロイできます。

Ant は、EJB コードの実際のデプロイとは関係のないビルド ツールです。これは、JAR のコンパイルとアセンブルに使用されます。これは、Eclipse からも実行できます。

これはまさにそれを行うチュートリアルです。

参考文献

包装用途

EJB3 アプリケーションのパッケージ化

于 2010-10-13T12:53:26.630 に答える