[Java規格支援機能]EJB

アプリケーション開発において、JavaEE上で開発する場合、JavaEE規格であるEJB(Enterprise Java Beans)を使用します。

EJB2.0までのEJBは、EJBの参照を取得するのに、以下のような複雑なAPIの呼び出し手続きが必要になります。

  1. JNDI環境変数を指定して(またはjndi.propertiesをクラスパスに置いて)、JNDIコンテキストを生成する。
  2. JNDIコンテキストからEJBホームオブジェクトをlookupする。
  3. EJBホームオブジェクトを必要なインタフェースへnarrowする。
  4. EJBホームオブジェクトからEJBリモートオブジェクトをcreateする。
  5. EJBリモートオブジェクトのメソッドを呼び出す。

そこで、このような煩雑なAPIを隠蔽しEJBの参照を取得するという簡潔な手段だけを抽象化したインタフェースが、 EJBFactoryです。

関連するパッケージは、以下です。

アプリケーション向けインタフェース EJBFactory

アプリケーション向けインタフェースEJBFactoryを使った簡単なアプリケーションのサンプルを示します。

  1. import jp.ossc.nimbus.core.ServiceManagerFactory;
  2. import jp.ossc.nimbus.service.ejb.EJBFactory;
  3. // EJBFactoryを取得
  4. EJBFactory factory = (EJBFactory)ServiceManagerFactory.getServiceObject("EJBFactory");
  5. // MessengerセッションBeanを取得する
  6. // 引数なしのcreateメソッドを持ったEJBリモート参照を取得する
  7. Messenger messenger = (Messenger)factory.get(
  8. "Messenger",
  9. MessengerHome.class
  10. );

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.ejb.InvocationEJBFactoryService汎用的にEJBを取得する
jp.ossc.nimbus.service.ejb.UnitEJBFactoryService特定のEJBを取得する
jp.ossc.nimbus.service.ejb.GroupEJBFactoryServiceUnitEJBFactoryServiceをグルーピングするEJBFactory

サンプルは、以下。