Java > JavaEE > EnterpriseBeans > EmbeddedEBC

  • JavaEEサーバの外側で、エンタープライズビーンアプリケーションを動かす

Overviewof the Embedded Enterprise Bean Container

  • JavaSE環境で実行されるクライアントコードからエンタープライズビーンにアクセスできる
  • コンテナとクライアントは同じJVM上で動作
  • サーバにデプロイせずにエンタープライズビーンのテストができる
  • JavaEEサーバで提供されているサービスの多くが利用可能
    • インジェクション
    • トランザクション管理
    • セキュリティ
  • エンタープライズビーンはサーバでもスタンドアローン環境でも同様に動作する

Developing Embeddable Enterprise Bean Applications

  • 組み込みコンテナがサポートする機能
    • ローカルセッションビーン
      • ローカルまたはno-interface viewのステートレス/ステートフル/シングルトンセッションビーン
      • すべてのメソッドへのアクセスは同期
      • Webサービスエンドポイントとしては利用不可
    • トランザクション
      • CMT or BMT
    • セキュリティ
      • 宣言的 or プログラマティック
    • インターセプタ
      • クラスレベル/メソッドレベルのセッションビーンインターセプタ
    • DD
      • 任意でejb-jar.xml(オーバライドルールはJavaEEサーバコンテナと同じ)

Running Embedded Applications

  • クラスパスにcontainerProviderRuntime.jarを含めてjavaコマンドをキックする
    java -classpath mySessionBean.jar:containerProviderRuntime.jar:myClient.jar com.example.ejb.client.Main
    

Creating the Enterprise Bean Container

  • EJBContainer.createEJBContainerでコンテナを生成
  • EJBContainerはクラスパスからエンタープライズビーンを探す
    • META-INF/ejb-jar.xml
    • エンタープライズビーンアノテーション付きのクラス
    • JARの中のMETA-INF/ejb-jar.xml、エンタープライズビーンアノテーション付きのクラス
  • EJBContainer.createEJBContainerが正常終了したら、ビーンの初期化は完了している

Explicitly Specifying Enterprise Bean Modules to be Initialized

  • EJBContainerに特定のエンタープライズビーンのみを初期化するようにEJBContainer.MODULESプロパティ指定できる
    • モジュールが組み込みコンテナやクライアントと同一のJVMクラスパス上の場合
      • Stringでモジュール名を指定
        Properties props = new Properties();
        props.setProperty(EJBContainer.MODULES, "mySessionBean");
        EJBContainer ec = EJBContainer.createEJBContainer(props);
        
    • モジュールが組み込みコンテナやクライアントとは別のJVMクラスパス上の場合
      • FileでJARファイルまたは、JARの展開ディレクトリを指定
        Properties props = new Properties();
        File ejbJarFile = new File(...);
        props.setProperty(EJBContainer.MODULES, ejbJarFile);
        EJBContainer ec = EJBContainer.createEJBContainer(props);
        

Looking Up Session Bean References

  • セッションビーンへの参照を取得するには、EJBContainer.getContextを利用する
    EJBContainer ec = EJBContainer.createEJBContainer();
    Context ctx = ec.getContext();
    MySessionBean msb = (MySessionBean)ctx.lookup("java:global/mySessionBean/MySessionBean");
    

Shutting Downthe Enterprise Bean Container

  • リソース解放のためにコンテナをクローズする。EJBContainer.close
最終更新:2012年09月22日 14:33
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。