9.2. EJB サービスの WAR ファイルのデプロイ

Enterprise JavaBeans (EJB) インターフェースを使用して、Red Hat Process Automation Manager ディストリビューションの一部として使用する EJB サービスの WAR ファイルを作成して、デプロイできます。

手順

  1. 次の例のような起動 Java クラスを使用して、ヒューマンタスクのコールバックを登録します。

    @Singleton
    @Startup
    public class StartupBean {
    
      @PostConstruct
      public void init()
      { System.setProperty("org.jbpm.ht.callback", "jaas"); }
    
    }
  2. EJB プロジェクトをビルドして、プロジェクト設定に合わせて WAR ファイルを生成します。
  3. 生成されたファイルを Red Hat Process Automation Manager が実行している Red Hat JBoss EAP インスタンスにデプロイします。

    ランタイムセッションに、Singleton ストラテジーは使用しないようにしてください。Singleton ストラテジーを使用すると、アプリケーションが下層のファイルシステムから同じ ksession インスタンスを複数回読み込み、楽観ロックの例外が発生する可能性があります。

    Red Hat Process Automation Manager が実行中のインスタンスと分離して、Red Hat JBoss EAP インスタンスに EJB WAR ファイルをデプロイする場合は、リモート EJB を呼び出して、セキュリティーコンテキストを伝搬するように、アプリケーションまたはアプリケーションサーバーを設定します。

    Hibernate を使用して Red Hat Process Automation Manager のデータベーススキーマを作成する場合は、Business Central の persistence.xml ファイルを更新して、hibernate.hbm2ddl.auto プロパティーの値を create ではなく、update に設定します。

  4. 以下の例のように、基本的な Web アプリケーションを作成し、EJB サービスを挿入して、デプロイメントをローカルでテストします。

    @EJB(lookup = "ejb:/sample-war-ejb-app/ProcessServiceEJBImpl!org.jbpm.services.ejb.api.ProcessServiceEJBRemote")
    private ProcessServiceEJBRemote processService;
    
    @EJB(lookup = "ejb:/sample-war-ejb-app/UserTaskServiceEJBImpl!org.jbpm.services.ejb.api.UserTaskServiceEJBRemote")
    private UserTaskServiceEJBRemote userTaskService;
    
    @EJB(lookup = "ejb:/sample-war-ejb-app/RuntimeDataServiceEJBImpl!org.jbpm.services.ejb.api.RuntimeDataServiceEJBRemote")
    private RuntimeDataServiceEJBRemote runtimeDataService;

Red Hat JBoss EAP での EJB アプリケーションの開発およびデプロイに関する詳細は、『EJB アプリケーションの開発』を参照してください。