LocalHomeインタフェースは、Java VM内で呼ばれるインタフェースであるためRMIの形で記述する必要はありません。
LocalHomeインタフェースには、クライアントよりEJB local objectをcreateするためのメソッドを定義します。
ビジネスメソッドで利用する固有の型も定義できます。
また、EJB2.0規約以降に準拠したEJBアプリケーションでは、STATEFUL Session Beanだけcreateで始まる任意の名前を記述できます。
これにより、createメソッド名に意味のある名前を記述できるため、EJBアプリケーションをわかりやすく作成できます。
以下に、LocalHomeインタフェースの記述形式を示します。
記述形式
public interface LocalHomeインタフェース名 extends javax.ejb.EJBLocalHome { public Localインタフェースタイプ create(任意の引数<STATEFULのみ>) throws javax.ejb.CreateException; }
規約
LocalHomeインタフェースは以下の規約を満たしていなければなりません。
LocalHomeインタフェースはjavax.ejb.EJBLocalHomeインタフェースを継承しなければなりません。
Localインタフェースに定義されたメソッドのthrows句にはjava.rmi.RemoteExceptionを定義してはなりません。
Localインタフェースは、スーパーインタフェースを持つことができます。
LocalHomeインタフェースは、1つ以上のcreateメソッドを定義します。
各createメソッドは、createで始まる任意の名前でなければなりません。
また、Enterprise Beanクラスに定義されたejbCreateメソッドの1つに一致しなくてはなりません。
一致するejbCreateメソッドは引数の数と型が同じでなければなりません(返却値は違っていてもかまいません)。
createメソッドの返却値のタイプは、Enterprise BeanのLocalインタフェースタイプでなければなりません(Enterprise BeanクラスのejbCreateメソッドの返却値はvoid固定です)。
Enterprise BeanクラスのejbCreateメソッドに定義されたすべての例外は、一致するcreateメソッドのthrows句に定義されなければなりません。また、throws句には、javax.ejb.CreateExceptionを含まなければなりません。