2016-03-15 19 views
0

我已經定義了一個服務任務的進程,除了這種情況,它運行的很好,當它有一個正在運行的任務,我重新啓動我的程序,然後它會拋出這個異常。這裏是我的代碼:JBPM6.2當我重新啓動我的系統時,這裏會引發一個異常

EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"); 

kBuilder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder(); 
kBuilder.entityManagerFactory(emf); 

try { 
    addAsset(resources); 

    DBUserGroupCallbackImpl callback = new DBUserGroupCallbackImpl(props); 
    setUserGroupCallback(callback); 

    runtimeManager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(kBuilder.get()); 
    runtime = runtimeManager.getRuntimeEngine(EmptyContext.get()); 
} catch (RuntimeException e) { 
    logger.warn(e.getMessage()); 
} 

,當我調試過程中,我發現: runtimeManager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(kBuilder.get());

此行拋出異常,不知爲何?以及它是如何發生的?

PS:我使用mysql作爲持久性 請參閱錯誤here

回答

0

最後我發現這是因爲我註冊了服務任務的工作處理程序,並且當進程運行時它將稍後註冊工作處理程序,但是當系統重新啓動時,工作處理程序不會立即註冊,所以它會拋出這個異常,這是我的代碼,當它重新啓動時,我立即註冊工作處理程序。

ServicesInstance.jbpmService.registerWorkItemHandler(「SendAlarmProcess」,new AutoServiceImpl());

相關問題