2016-03-28 66 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); 

    } 
} 

希望有所帮助。