2016-03-28 65 views
0

我正在嘗試從activiti.cfg.xml中讀取Process Engine,並在其中配置了DB2並設置了數據源。但在調試期間,我可以看到Process配置仍然是H2。另外,在嘗試從運行時間服務創建流程實例時,它會變爲空。下面是代碼Activiti進程配置指向H2始終

ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml", "processEngineConfiguration") 


<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> 
    <property name="databaseType" value="db2" /> 
    <property name="dataSource" ref="customDataSource" /> 
</bean> 
<bean id="dataSourceTarget" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="XXX"></property> 

<bean id="customDataSource" class="XXX"> 
    <property name="targetDataSource"><ref local="dataSourceTarget"/></property> 
    <property name="schemaName"><value>XXX</value></property> 
</bean> 


      RuntimeService runtimeService = processEngine.getRuntimeService(); 
     processInstance = runtimeService.startProcessInstanceByKey(processDefinitionName, processVariablesMap); 

如何將配置更改爲DB2並同時獲得流程實例?

回答

1

我認爲你缺少的buildProcessEngine()

ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml", "processEngineConfiguration").buildProcessEngine() 

通話,而不是

ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml", "processEngineConfiguration") 
+0

我也建立了流程引擎。 – user2017810

0

您需要更改activiti.properties數據庫屬性文件註釋的H2配置並指定自己的DB組態。這是Activiti企業...從你的代碼看起來你使用的社區之一,然後嘗試創建獨立的流程引擎,而不是使用.xml文件...

+0

我已經完成了 user2017810

+0

我說的是activiti.properties文件,它可以在以下路徑下找到:activiti \ tomcat \ webapps \ activiti-app \ WEB-INF \ classes \ META-INF \ activiti-app –

+0

你使用Activiti企業還是社區?上面指定的路徑是針對企業的... –

0

如果您嘗試創建一個運行時擴展JavaDelegate的類,它比這更簡單。您需要新的進程來繼承以前的運行時屬性。

因此而不是做

RuntimeService runtimeService = processEngine.getRuntimeService(); 

,你可以得到你的實際執行運行時:

public class CreateNewInstance implements JavaDelegate { 

    private String processKey; 
    private Map<String, Object> variables; 

    public void execute(DelegateExecution execution) throws Exception { 

     // Load all the variables into the Map 
     variables = execution.getVariables(); 

     RuntimeService runtimeService = execution.getEngineServices() 
       .getRuntimeService(); 
     runtimeService.startProcessInstanceByKey(processKey, variables); 

    } 
} 

希望有所幫助。