我正在使用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
表为空)。
我的方法有什么问题?
我的问题是过程定义文件名:它是one-task-process.xml
,但它应该是one-task-process.bpmn20.xml
。