EJB 開発リソース

このトピックでは、 EJB 開発で一般に使用されるリソースおよび開発ツールを説明します。

EJB モジュール

EJB モジュールは、J2EE パースペクティブの「プロジェクト・エクスプローラー」ビューに表示され、EJB プロジェクトに対応するものです。

EJB モジュールを使用して、1 つ以上のエンタープライズ Bean をアセンブルし、単一デプロイ可能な単位にします。EJB モジュールは、 EJB プロジェクトで開発され、独立型 EJB JAR ファイルとしてエクスポートすることも、エンタープライズ・アプリケーション内の他の EJB モジュールまたは Web モジュールと結合することもできます。EJB JAR ファイルは、標準の Java™ アーカイブ・ファイルの形式を使用します。EJB モジュールには、以下のものが含まれています。

  • 1 つ以上のエンタープライズ Bean とそれらに関連した .class および .java ファイル。
  • エンタープライズ Bean の必要性次第では、グラフィックス・ファイルまたはその他のファイル。
  • デプロイメント記述子。デプロイメント記述子のファイル・タイプは、XML (Extensible Markup Language) です。このファイルで、EJB モジュールの内容を宣言し、モジュール内の Bean の構造を定義して、実行時に Bean を使用する方法を記述します。
  • META-INF ディレクトリー内の MANIFEST.MF ファイル。 マニフェスト・ファイルには、クラスパス・エントリーと、 J2EE エンタープライズ・アプリケーション 内の他の JAR ファイルまたは EJB モジュールへの参照が収められます。これはモジュールの外部依存関係を定義します。
  • ターゲット・ランタイム・コンテナーが WebSphere® Application Server である場合の標準デプロイメント記述子に対する IBM® 拡張。

EJB モジュールは、EJB コンテナーにインストールして実行します。

エンタープライズ Bean は、他のリソースと結合されて、分散クライアント/サーバー・アプリケーションを作成することのできる Java コンポーネントです。

注: EJB モジュールの EJB クライアント JAR ファイルの作成を選択した場合、エンタープライズ Bean のクライアント・インターフェース・クラスは EJB JAR ファイルには含まれませんが、 EJB クライアント JAR ファイルに含まれます。
EJB プロジェクト

ワークベンチでは、ユーザーがプロジェクトのエンタープライズ・アプリケーション用のリソースの作成および保守を行います。EJB プロジェクトは、エンタープライズ Bean をユーザーが編成できるようにする論理モジュールです。「プロジェクト・エクスプローラー」ビューで、EJB プロジェクトは EJB モジュールとして表示されます。

ワークベンチは、EJB 1.1、EJB 2.0、および EJB 2.1 プロジェクトをサポートします。収容 EAR プロジェクトの J2EE 仕様レベルは、EJB 2.0 プロジェクトの場合は J2EE 1.3 以上に設定し、EJB 2.1 プロジェクトの場合は J2EE 1.4 に設定する必要があります。 EJB 1.1 プロジェクトで作成できるのは、EJB 1.1 Bean のみです。

EJB プロジェクトは専門化された Java プロジェクトです。プロジェクトのソース・ファイルと出力ファイルは、 ejbModule フォルダーに格納されます。デプロイメント・コードの変更または生成を行うと、Java クラスがコンパイルされて ejbModule フォルダーに格納されます。 EJB プロジェクトをソース・フォルダーとして使用することはできません。使用するとエラーの原因になります。

インポートされたクラスは、 imported_classes フォルダーに格納されます。このフォルダーは、インポートされた JAR ファイル内の .class ファイ ルにソースが存在しない場合にだけ作成され、 ソース の存在しない .class ファイルだけがこのフォルダーに追加されます。プロジェクトが作成されると、imported_classes フォルダーにあるクラスが ejbModule フォルダーにコピーされます。その後、インポートされたクラス用にソースを追加した場合、imported_classes フォルダー内の .class ファイルは無視されます。ただし、.java ファイルを追加する場合には、.class ファイルを削除しなければなりません。

注: EJB モジュールの EJB クライアント JAR ファイルの作成を選択した場合、エンタープライズ Bean のクライアント・インターフェース・クラスは EJB プロジェクトには含まれませんが、別個の EJB クライアント JAR プロジェクトに含まれます。プロジェクト・エクスプローラーで、EJB クライアント JAR プロジェクトは「その他のプロジェクト」ノード下に Java プロジェクトとして表示されます。
EJB クライアント・プロジェクト

EJB ツールは、 EJB モジュールの EJB クライアント JAR プロジェクトの作成をサポートします。EJB クライアント JAR プロジェクトには、クライアント・プログラムが、EJB プロジェクト内に含まれているエンタープライズ Bean のクライアント・ビューを使用するのに必要なインターフェース・クラスがすべて含まれます。EJB プロジェクトの EJB クライアント・プロジェクトを作成するとき、新規 Java プロジェクトが作成され、ワークスペースに追加されます。EJB クライアント・プロジェクトが、 プロジェクト・ユーティリティー JAR ファイルとして、EJB プロジェクトが属するそれぞれのモジュールに追加されます。

デフォルトでは、ウィザードを使用して EJB プロジェクトを作成すると、EJB クライアント JAR プロジェクトも作成されます。ただし、ウィザードでこのオプションをクリアすることもできます。

ヒント: モジュールとして EJB プロジェクトを含まない他のエンタープライズ・アプリケーションに、 EJB クライアント・プロジェクトを追加することもできます。これにより、EJB アプリケーションをエクスポートするときに、EJB クライアント JAR ファイルがエクスポートされ、かつ EAR ファイルとパッケージ化されることが保証されます。
エンタープライズ Bean

エンタープライズ Bean は、他のリソースと結合されて、分散クライアント/サーバー・アプリケーションを作成することのできる Java コンポーネントです。

エンタープライズ Bean には、エンティティー Bean、セッション Bean、およびメッセージ駆動型 Bean の 3 つの型があります。一般的には、すべての型の Bean が 1 つのエンタープライズ・アプリケーション内で一緒に使用されます。

エンティティー Bean
エンティティー Bean は永続データを保管します。コンテナー管理パーシスタンス (CMP) を持つエンティティー Bean には、データベース接続が必須です。 Bean 管理パーシスタンスを持つエンティティー Bean は、Bean のコードで定義された方法がどんなものであっても、その方法で永続データを管理します。これには、例えば、データベースまたは XML ファイルへの書き込みも組み込まれています。
セッション Bean
セッション Bean は、エンティティー Bean へのアクセスによって (必要に応じて) 間接的にデータベースにアクセスできるが、それは必須 ではない。セッション Bean はリソース参照を使用して、データベース (および他のリソース) に直接アクセスすることもできます。
メッセージ駆動型 Bean
メッセージ駆動型 Bean は、 JMS メッセージング・システムにおいてメッセージ・コンシューマーとして働く特殊なエンタープライズ Bean です。標準的な JMS メッセージ・コンシューマーと同じように、 メッセージ駆動型 Bean は、メッセージの内容に基づいたビジネス・ロジックを受信し実行します。メッセージ駆動型 Bean インスタンスの動的な作成および割り振りは、 いくつかの点でステートレス・セッション・エンタープライズ Bean の振る舞いをまねています。しかし、メッセージ駆動型 Bean は、次のいくつかの点でステートレス・セッション・エンタープライズ Bean (およびその他の型のエンタープライズ Bean) とは異なっています。
  • メッセージ駆動型 Bean は、直列化されたメソッド呼び出しのシーケンスを処理するのではなく、複数の JMS メッセージを非同期的に処理します。
  • メッセージ駆動型 Bean は、ホーム・インターフェースやリモート・インターフェースをもっていないため、内部クライアントや外部クライアントからは直接アクセスすることができません。

データ・アクセスを必要とする Bean は、データ・ソース、すなわちデータベース接続のプールを定義している管理リソースを使用します。

デプロイメント記述子

デプロイメント記述子には、ランタイム環境がアプリケーション用に使用する構成データが含まれています。デプロイメント記述子には、以下についての情報を組み込むことができます。

  • アプリケーションの構造および内容 (例えば、エンタープライズ Bean)。
  • 内部および外部の依存関係への参照。例えば、EJB モジュールのエンタープライズ Bean は、 同じモジュール内でバンドルされていない別のエンタープライズ Bean を必要とする場合があります。
  • URL または JDBC データ・ソースなどの、リソース・ファクトリー・オブジェクトへの参照。
  • アプリケーションに対して必要なアクセス制御を実装する際に、コンテナーが使用するセキュリティー役割。
  • コンテナーがアプリケーションのトランザクションを管理する方法 (および管理するかどうか) についてのトランザクション情報。

デプロイメント記述子は、アプリケーションのファイルと一緒に Java アーカイブ・ファイルにパッケージされた XML ファイルです。EJB デプロイメント記述子は、ejb-jar.xml と呼ばれ、EJB プロジェクトの META-INF フォルダーに格納されます。 1 つの J2EE アプリケーションには、1 つのアプリケーション・レベルのデプロイメント記述子ファイルが含まれており、 これがアプリケーション全体を支配します。また、いくつかのコンポーネント・レベルのデプロイメント記述子も、 アプリケーションのモジュールごとに 1 つずつ含まれています。

標準のデプロイメント記述子に加えて、ワークベンチには WebSphere Application Server のバインディングおよび拡張機能についての情報も組み込まれています。バインディング文書および拡張機能文書は、IBM 独自のものです。バインディング記述子および拡張記述子のどちらも XMI ファイル、 すなわち ibm-ejb-jar-bnd.xmi および ibm-ejb-jar-ext.xmi にそれぞれ保管されています。バインディング情報は、外部の依存関係あるいはリソースの論理名を、実際の JNDI 名にマップします。例えば、コンテナーはバインディング情報を使用して、インストールの際にリモート Bean を位置指定します。拡張機能は、標準記述子に追加されます。拡張機能によって、古い (レガシー) システムが WebSphere Application Server 環境で機能できるようになります。また、この拡張機能は、ベンダー固有のアプリケーション振る舞い、現行仕様では未定義であるアプリケーション振る舞い、または将来の仕様に組み込まれると予想されるアプリケーション振る舞いを指定する場合にも使用されます。

マッピング文書 (map.mapxmi)

マッピング・エディターを使用すれば、エンタープライズ Bean をデータベースにマッピングできます。 map.mapxmi ファイルには、このマッピング情報が収められます。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved. (C) Copyright IBM Japan 2005.