Activiti:没有使用密钥 'oneVacationProcess' 部署的进程

Activiti: no processes deployed with key 'oneVacationProcess'

我想在 spring mvc 中使用 activiti。我的 java activiti 配置如下。 当我 运行 预测这个异常时 no processes deployed with key 抛出。我将 one-vacation-process.bpmn20.xml 放在资源文件夹中。我的问题是什么?感谢您的帮助。

  @Configuration
  public class ActivitiConfig {

@Bean
public ProcessEngine processEngine(ProcessEngineConfigurationImpl pec, ApplicationContext applicationContext) throws Exception {
    ProcessEngineFactoryBean pe = new ProcessEngineFactoryBean();
    pe.setProcessEngineConfiguration(pec);
    pe.setApplicationContext(applicationContext);

    return pe.getObject();
}

@Bean
public ProcessEngineConfigurationImpl getProcessEngineConfiguration(
        DataSource dataSource,
        PlatformTransactionManager transactionManager,
        ApplicationContext context) {
    SpringProcessEngineConfiguration pec = new SpringProcessEngineConfiguration();

    pec.setDataSource(dataSource);
    pec.setDatabaseSchemaUpdate("true");
    pec.setJobExecutorActivate(true);
    pec.setHistory("full");
    pec.setMailServerPort(2025);
    pec.setDatabaseType("mysql");

    pec.setTransactionManager(transactionManager);
    pec.setApplicationContext(context);

    return pec;
}

@Bean
public RuntimeService getRuntimeService(ProcessEngine processEngine) {
    return processEngine.getRuntimeService();
}
@Bean
public TaskService taskService(ProcessEngine processEngine) throws Exception {
    return processEngine.getTaskService();
}

您需要先部署流程。

有API用于不同的用例,这里我部署了一个进程,其中resourceName是进程的名称xml(例如one-vacation-process.bpmn20.xml)和content 实际文件内容为字符串。

RepositoryService repositoryService = processEngine.getRepositoryService();
DeploymentBuilder builder = repositoryService.createDeployment().addString(resourceName, content);
builder.enableDuplicateFiltering().deploy();

看看 org.activiti.engine.repository.DeploymentBuilder 哪里有 API 比如:

DeploymentBuilder addInputStream(String resourceName, InputStream inputStream);
DeploymentBuilder addClasspathResource(String resource);
DeploymentBuilder addString(String resourceName, String text);
DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream);
DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel);