以下に、Session Beanの概要について説明します。
また、Webサービス化するSTATELESS Session Beanの開発方法については“第18章 Webサービスの開発”を参照してください。
クラスファイルの構成
Session BeanのEJBアプリケーションは、以下の5つのクラスファイルから成り立っています。それぞれのクラス名はユーザの任意の名前を付けることができます。
下表1~5のクラスファイルはEnterprise Beanを使用するためのインタフェースです。
| クラスファイル名 | 内容 |
---|---|---|
1 | Homeインタフェース | EJB objectの生成を行うインタフェースを定義します。 |
2 | LocalHomeインタフェース | 同一JavaVM上で、EJB objectの生成を行うインタフェースを定義します。 |
3 | Remoteインタフェース | ユーザのビジネスメソッドを呼び出すためのインタフェースを定義します。 |
4 | Localインタフェース | 同一JavaVM上で、ユーザのビジネスメソッドを呼び出すためのインタフェースを定義します。 |
5 | サービスエンドポイントインタフェース | Webサービスでユーザのビジネスメソッドを呼び出すためのインタフェースを定義します。 |
6 | Enterprise Beanクラス | サーバで実際に処理を行うクラスで、ユーザの開発するメソッドを実装します。 |
相関図
以下に例として、クラスファイルとクライアントアプリケーションの相関図を示します。
[図の説明]
HomeインタフェースはEJB objectを作成するためのcreateメソッドを定義します。
クライアントより、createメソッドを呼び出すと、EJB objectを作成し、同じ形式で記述されているEnterprise BeanクラスのejbCreateメソッドを呼び出します。
また、クライアントからHomeインタフェースのメソッドを呼び出すには、lookup()メソッドで、EJBHomeを検索してください。
Remoteインタフェースもしくはサービスエンドポイントインタフェースは、Enterprise Beanクラスのビジネスメソッドを定義します。
インタフェースで定義するビジネスメソッドの形式は、Enterprise Beanクラスに実装されるビジネスメソッドと同じ形式にしてください。
Remoteインタフェースはjavax.ejb.EJBObjectインタフェースを継承しており、javax.ejb.EJBObjectインタフェースのメソッドを使用できます。
SOAPとRMIoverIIOPの双方から呼び出されるSTATELESS Session Beanを作成する場合には、RMIoverIIOP用のインタフェース(Remoteインタフェース/Homeインタフェース)とSOAP用のサービスエンドポイントインタフェースの両方を作成してください。
SOAPからのみ呼び出されるSTATELESS Session Beanの場合には、サービスエンドポイントインタフェースのみ用意する(Remoteインタフェースなどを用意しない)ことも可能です。
ユーザは実際に業務を行うejbCreate、ejbRemoveおよびビジネスメソッドをEnterprise Beanクラスに実装します。