Enterprise JavaBeans(EJB)デプロイメント記述子の2つの主要バージョンが現在流通しています。 EJB 1. 1デプロイメント記述子は、EJB 1. 1仕様に構築されたEJBアプリケーションの構造とアセンブリを記述します。 EJB 2. 0デプロイメント記述子は、EJB 2.0アプリケーションの追加機能を記述するために必要な数多くのタグを追加します。 EJB 2.0準拠のEJBコンテナはEJB 1. 1アプリケーションをサポートする必要がありますが、2.0仕様をサポートするようにアップグレードされていないEJBコンテナはEJB 2.0配備記述子をサポートしません。
<! - 1 - >すべてのEJBデプロイメント記述子はejb-jarという名前にする必要があることに注意してください。 xml。
この記事では、2.0仕様に準拠するEJBアプリケーションの開発について触れています。したがって、EJBコンテナを選択するときは、選択基準としてEJB 2.0仕様のサポートを使用する必要があります。 IBMのWebSpere、BEAのWebLogic、オープンソースのJBoss Application Serverなど、主要なEJBコンテナベンダーは、探し始めるのに適しています。
<! - 2 - >EJBデプロイメント記述子のルート要素は次のとおりです。すべてのタグはタグ内にネストする必要があります。このタグには、3つのサブ要素があります。
- :このタグには、EJBアプリケーションのEJBコンポーネントに関する記述情報が含まれています。エンティティBeanが外部リソース、システムリソース、およびその他のエンティティBeanを参照する必要がある場合、これらのリソースについてはこのセクションで説明します。
- :このタグは、EJB 2.0アプリケーションのコンテナ管理リレーションシップ・サポートを使用して、エンティティBean間の関係を記述します。
- :このタグは、EJBアプリケーションのアセンブリ情報を記述するために使用されます。 Beanプロバイダはいくつかのアセンブリ情報を提供することがありますが、アプリケーションアセンブリは主にアプリケーションアセンブラの肩に当たる責任があります。アプリケーションアセンブリの2つの主要な要素は、トランザクションの記述とセキュリティの記述です。
タグには、EJBアプリケーションで定義できるエンタープライズBeanの種類ごとの説明が含まれています。セッションBean、エンティティBean、およびメッセージドリブンBeanの3つのサブ要素があります。セッション、エンティティ、およびメッセージ駆動型Beanは、いくつかのXMLタグを共有しています。
- 論理名: 各EJBコンポーネントには、残りのデプロイメント記述子で各Beanが参照される名前を識別する論理名があります。論理名はタグに含まれています。コンポーネントがパッケージ化されているejb-jarファイルのスコープで一意でなければなりません。タグは、、、およびタグのサブ要素です。
- エンタープライズBeanクラス: エンタープライズBeanクラスは、EJBコンポーネントのすべてのビジネスメソッドとライフサイクル管理メソッドを実装するクラスです。このクラスはタグで識別されなければなりません。 EJBクラスの完全修飾クラス名を持つ必要があります。タグは、、、およびタグのサブ要素です。
- コンポーネントインタフェース: セッションBeanとエンティティBeanは、ローカルコンポーネントとリモートコンポーネントの両方のインタフェースを持つこともできます。 EJBコンテナは、どのクラスがセッションBeanとエンティティBeanのコンポーネントインタフェースを実装しているかを知る必要があります。このタグは、リモートインタフェースを識別するために使用され、リモートインタフェースの完全修飾クラス名(存在する場合)を含む必要があります。このタグは、ローカルインタフェースを識別するために使用され、ローカルインタフェースの完全修飾クラス名(存在する場合)を含む必要があります。 EJBコンポーネントは、リモートインタフェースとローカルインタフェースの両方を持つ必要はありませんが、どちらか一方が必要です。このルールの例外は、メッセージ駆動型Beanであり、リモートまたはローカルインタフェースを持つことはできません。エンティティBeanとセッションBeanの場合は、ローカルインタフェースとリモートインタフェースの両方を持つことができます。各コンポーネントインタフェースに対して、デプロイメント記述子はエンタープライズBeanに対応するホームインタフェースを定義する必要があります。
- ホームインタフェース: ホームインタフェースは、セッションBeanとエンティティBeanに対して定義できます。ローカルホームインタフェースはエンタープライズBeanへのローカルアクセスを提供し、リモートホームインタフェースはエンタープライズBeanへのリモートアクセスを提供します。ローカルホームインタフェースは、デプロイメント記述子内のタグによって識別されます。リモートホームインタフェースは、デプロイメント記述子内のタグによって識別されます。
- トランザクションタイプ: すべてのエンタープライズBeanコンポーネントにタグがあります。タグは、エンタープライズBeanのトランザクションサービスがBeanによって管理されるか、EJBコンテナによって管理されるかを記述するために使用されます。タグに指定できる2つの値は、Bean(Bean管理のトランザクションの場合)とContainer(コンテナ管理のトランザクションの場合)です。 Bean管理のトランザクションは非常に複雑であり、エントリーレベルのEJBプログラマーの範囲をはるかに超えています。
- 記述: 各EJBコンポーネントは、EJBコンポーネントの目的を記述するオプションの記述タグを持つことができます。 description要素はタグで区切られています。タグには、EJBコンポーネントの目的に関するドキュメントが含まれている必要があります。
- ビルド・ツール・タグ: ビルド・ツールの追加情報を提供するために使用される各エンタープライズBeanには、いくつかのオプションのタグがあります。 ビルドツール は、EJBアプリケーションを作成するためのグラフィカルインタフェースを提供します。ビルドツールのタグは、ビルドツールのユーザーインターフェイスでエンタープライズBeanの表示を改善するために使用されます。
• :このタグは、エンタープライズBeanコンポーネントがビルドツールに表示されるべき名前を識別します。
• :このタグは、エンタープライズBeanの表示に使用される32ピクセル×32ピクセルのアイコンへのパスを示します。イメージはJPEGまたはGIF形式でなければなりません。
• :このタグは、エンタープライズBeanの表示に使用される16×16ピクセルのアイコンへのパスを示します。イメージはJPEGまたはGIF形式でなければなりません。