Метод обработчика событий не вызывается в jbpm

У меня есть среда интеграции spring 3 и jbpm 4.4. Однако в одной из моих задач я предоставил событие в соответствии со спецификациями jpdl.

Мой фрагмент 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>

и bean-компонент myEventHandler создается весной, как показано ниже:

<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(...);
    }

}

Проблема в том, что после нескольких попыток метод уведомления НИКОГДА не выполняется. Я вижу, что задачи создаются в таблице JBPM4_TASK, но, как ни странно, я не могу вызвать вызов notify(). И нет никакой формы ошибки или предупреждения, которые можно было бы увидеть.

Кто-нибудь сталкивался с подобными проблемами? Есть ли способ решить эту проблему?

Любая помощь приветствуется.


person Ayusman    schedule 02.08.2011    source источник
comment
Если бы я мог добавить, обработчики событий отлично работают при автономном запуске.   -  person Ayusman    schedule 02.08.2011


Ответы (1)


Для тех, кому это может быть полезно:

Правильный тег:

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

и не

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

Это была простая путаница, которая доставила мне много неприятностей.

Мораль истории...

Привязка и дескрипторы jbpm4 не жалуются на неизвестные теги, которые вы можете предоставить...

так что будьте осторожны. Потому что в любом случае нет проверки xsd для необязательных тегов.

ХТХ, Аюсман

person Ayusman    schedule 04.08.2011