2

カスタム作業項目ハンドラーで jbpm-console (6.0.0.Final) を使用しています。ここの投稿 #7 で説明されているように、jbpm-console WAR にカスタム作業項目ハンドラー JAR を埋め込みました。

https://community.jboss.org/thread/221748

jbpm-console でプロセス定義を正常に開始でき、カスタム WorkItemHandler コードを開始できるため、これまでのところ問題ありません。

ただし、私の WorkItemHandler では、ProcessInstance にいくつかの変数を設定したいと考えています。私がこのようなことをしようとすると:

public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
    KieServices ks = KieServices.Factory.get();
    KieContainer kContainer = ks.getKieClasspathContainer();

    // BLOWS UP HERE
    //
    KieSession session = kContainer.newKieSession();

    WorkflowProcessInstance processInstance = 
      session.getProcessInstance(workItem.getProcessInstanceId());

    // SET VARIABLE
    processInstance.setVariable("foo", "bar");
}

「デフォルトの KieSession が見つかりません」:

11:21:03,177 ERROR Exception: java.lang.RuntimeException: Cannot find a default KieSession
at org.drools.compiler.kie.builder.impl.KieContainerImpl.findKieSessionModel(KieContainerImpl.java:302) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:295) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:278) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]

ここで何が欠けていますか?追加で何か設定する必要がありますか? ここからすぐに使用できる(カスタム作業項目ハンドラーが埋め込まれたjarを除く)「デモ」インストールを使用しています:

http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.0.0.Final

ありがとう!

4

2 に答える 2