2011-08-02 52 views
0

我有一個spring 3和jbpm 4.4集成環境。 但是,在我的一項任務中,我根據jpdl規範提供了一個事件。事件處理程序方法沒有在jbpm中調用

我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 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()調用。並沒有任何形式的錯誤或警告被看到。

有人遇到過類似的問題嗎? 有沒有辦法解決這個問題?

任何幫助表示讚賞。

+0

如果我想補充,獨立運行時的事件處理工作得很好。 – Ayusman

回答

0

對於那些誰可能會受益於這樣的:

正確的標籤是:

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

,而不是

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

這是它給我帶來了很多麻煩一個簡單的混亂。

這個故事告訴我們......

JBPM4結合和描述符不抱怨未知的標籤,你可能會提供...

所以要小心。因爲任何方式都沒有可選標記的xsd驗證。

HTH, Ayusman

相關問題