30.2. EJB サービスの WAR ファイルのデプロイ
Enterprise JavaBeans (EJB) インターフェイスを使用して、Red Hat Process Automation Manager ディストリビューションの一部として使用する EJB サービスの WAR ファイルを作成して、デプロイできます。
手順
次の例のような起動 Java クラスを使用して、ヒューマンタスクのコールバックを登録します。
@Singleton @Startup public class StartupBean { @PostConstruct public void init() { System.setProperty("org.jbpm.ht.callback", "jaas"); } }
- EJB プロジェクトをビルドして、プロジェクト設定に合わせて WAR ファイルを生成します。
生成されたファイルを 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
に設定します。以下の例のように、基本的な 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 アプリケーションの開発 を参照してください。