0

spring 3 と jbpm 4.4 の統合環境があります。ただし、私のタスクの 1 つで、jpdl 仕様に従ってイベントを提供しました。

task 要素を含む jpdl スニペットは次のようになります。

<task  name="TK1" 
      assignee="test" 
          description="A task that gets assigned to somebody with user name test" 
          g="117,90,48,52">
        <on event="start">
                    <event-handler expr="#{myEventHandler}"/>
        </on>
        <on event="end">
              <event-handler expr="#{myEventHandler}"/>
        </on>
  <transition name="END"  to="END" g="-31,2"/>
</task>

myEventHandler Bean は以下のように春に作成されます。

<bean id="myEventHandler" class="com.test.MyEventHandler">
    <!-- myBO bean is created in the spring application context file itself which contains code to insert/update data to DB-->
    <property name="myBO" ref="myBO"/>
</bean>

私のイベントハンドラークラスは次のようになります。

import org.jbpm.api.listener.EventListener;
import org.jbpm.api.listener.EventListenerExecution;

public class MyEventHandler implements EventListener {

    private MyBO myBO;

    @Override
    public void notify(EventListenerExecution eventExecution) throws Exception
    {
        //Do some logical operation based on incoming process variable...

        //Use the myBO bean to do DB operation...
        myBO.insert(...);
        myBO.update(...);
    }

}

問題は、いくつかのオプションを試した後、notify メソッドが実行されないことです。タスクが JBPM4_TASK テーブルに作成されているのがわかりますが、奇妙なことに、notify() を呼び出すことができません。また、表示されるエラーや警告の形式はありません。

誰かが同様の問題に直面しましたか?これを解決する方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

これから恩恵を受ける可能性のある人のために:

正しいタグは次のとおりです。

<event-listener expr="#{myEventHandler}"/>

そしてそうではない

<event-handler expr="#{myEventHandler}"/>

これは単純な混乱であり、多くの問題を引き起こしました。

この話の教訓...

jbpm4 バインディングと記述子は、提供する可能性のある不明なタグについて文句を言いません...

ので注意してください。オプションのタグには xsd 検証がないためです。

HTH、アユスマン

于 2011-08-04T09:10:27.613 に答える