このトピックでは、 EJB 開発で一般に使用されるリソースおよび開発ツールを説明します。
EJB モジュールは、J2EE パースペクティブの「プロジェクト・エクスプローラー」ビューに表示され、EJB プロジェクトに対応するものです。
EJB モジュールを使用して、1 つ以上のエンタープライズ Bean をアセンブルし、単一デプロイ可能な単位にします。EJB モジュールは、 EJB プロジェクトで開発され、独立型 EJB JAR ファイルとしてエクスポートすることも、エンタープライズ・アプリケーション内の他の EJB モジュールまたは Web モジュールと結合することもできます。EJB JAR ファイルは、標準の Java™ アーカイブ・ファイルの形式を使用します。EJB モジュールには、以下のものが含まれています。
EJB モジュールは、EJB コンテナーにインストールして実行します。
エンタープライズ Bean は、他のリソースと結合されて、分散クライアント/サーバー・アプリケーションを作成することのできる Java コンポーネントです。
ワークベンチでは、ユーザーがプロジェクトのエンタープライズ・アプリケーション用のリソースの作成および保守を行います。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 モジュールの EJB クライアント JAR プロジェクトの作成をサポートします。EJB クライアント JAR プロジェクトには、クライアント・プログラムが、EJB プロジェクト内に含まれているエンタープライズ Bean のクライアント・ビューを使用するのに必要なインターフェース・クラスがすべて含まれます。EJB プロジェクトの EJB クライアント・プロジェクトを作成するとき、新規 Java プロジェクトが作成され、ワークスペースに追加されます。EJB クライアント・プロジェクトが、 プロジェクト・ユーティリティー JAR ファイルとして、EJB プロジェクトが属するそれぞれのモジュールに追加されます。
デフォルトでは、ウィザードを使用して EJB プロジェクトを作成すると、EJB クライアント JAR プロジェクトも作成されます。ただし、ウィザードでこのオプションをクリアすることもできます。
エンタープライズ Bean は、他のリソースと結合されて、分散クライアント/サーバー・アプリケーションを作成することのできる Java コンポーネントです。
エンタープライズ Bean には、エンティティー Bean、セッション Bean、およびメッセージ駆動型 Bean の 3 つの型があります。一般的には、すべての型の Bean が 1 つのエンタープライズ・アプリケーション内で一緒に使用されます。
データ・アクセスを必要とする Bean は、データ・ソース、すなわちデータベース接続のプールを定義している管理リソースを使用します。
デプロイメント記述子には、ランタイム環境がアプリケーション用に使用する構成データが含まれています。デプロイメント記述子には、以下についての情報を組み込むことができます。
デプロイメント記述子は、アプリケーションのファイルと一緒に 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 環境で機能できるようになります。また、この拡張機能は、ベンダー固有のアプリケーション振る舞い、現行仕様では未定義であるアプリケーション振る舞い、または将来の仕様に組み込まれると予想されるアプリケーション振る舞いを指定する場合にも使用されます。
マッピング・エディターを使用すれば、エンタープライズ Bean をデータベースにマッピングできます。 map.mapxmi ファイルには、このマッピング情報が収められます。