未使用 Spring 启动部署 Activiti 进程

Activiti process not being deployed with Spring Boot

我正在使用 Spring Boot,我正在尝试部署一个非常简单的过程。

我试图将流程定义放在 src/main/resources 中名为 processes 的文件夹中。不确定是否可行,我还尝试手动部署流程定义。

过程是:

<?xml version="1.0" encoding="UTF-8"?>
<definitions
        xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
        xmlns:activiti="http://activiti.org/bpmn"
        targetNamespace="MyProcessesNamespace">

    <process id="oneTaskProcess" name="The One Task Process" isExecutable="true">
        <startEvent id="theStart" />
        <sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask" />
        <userTask id="theTask" name="my task" />
        <sequenceFlow id="flow2" sourceRef="theTask" targetRef="theEnd" />
        <endEvent id="theEnd" />
    </process>

</definitions>

我用来手动部署它的代码是:

DeploymentBuilder db = repositoryService.createDeployment().
                name("Deployment name");

        Resource processesResource = resourceLoader.getResource("classpath:processes");
        File processesFolder = processesResource.getFile();
        Collection<File> files =
                FileUtils.listFiles(processesFolder, null, false);

        for (File f : files) {
            InputStream is = new FileInputStream(f);
            db.addInputStream(f.getName(), is);
        }

        db.deploy();
}

这样,我进入 files 的循环,我实际上看到正在处理正确的 xml。然后 db.deploy() 正确执行并部署了应用程序。

然后我尝试这个 JSON { "processDefinitionKey":"oneTaskProcess" } 到 URL http://myuser:mypassword@localhost:8080/runtime/process-instances 但响应是:

{
  "message": "Bad request",
  "exception": "no processes deployed with key 'oneTaskProcess'"
}

在数据库中,我看到部署,但不存在流程定义(act_re_procdef table 为空)。

我的方法有什么问题?

我的问题是流程定义文件名:它是 one-task-process.xml,但应该是 one-task-process.bpmn20.xml