
业务归档中的Java类将不能够添加到类路径下
为了能够让流程运行,必须把存在于业务归档程中的流程定义使用的所有自定义的类(例如:Java服务任务或者实现事件的监听器)放在 [activiti引擎的类路径] 下String barFileName = "path/to/process-one.bar";
ZipInputStream inputStream = new ZipInputStream(new FileInputStream(barFileName));
repositoryService.createDeployment()
.name("process-one.bar")
.addZipInputStream(inputStream)
.deploy();
<definitions id="myDefinitions" >
<process id="myProcess" name="My important process" >
...当部署了这个流程定义之后,数据库中的流程定义如下:
id | key | name | version |
|---|---|---|---|
myProcess:1:676 | myProcess | My important process | 1 |
id | key | name | version |
|---|---|---|---|
myProcess:1:676 | myProcess | My important process | 1 |
myProcess:2:870 | myProcess | My important process | 2 |
当runtimeService.startProcessInstanceByKey("myProcess") 方法被调用时,它将会使用流程定义版本号为2的, 因为这是最新版本的流程定义.可以说每次流程定义创建流程实例时,都会默认使用最新版本的流程定义 |
<definitions id="myNewDefinitions" >
<process id="myNewProcess" name="My important process" >
...id | key | name | version |
|---|---|---|---|
myProcess:1:676 | myProcess | My important process | 1 |
myProcess:2:870 | myProcess | My important process | 2 |
myNewProcess:1:1033 | myNewProcess | My important process | 1 |
repositoryService.createDeployment()
.name("expense-process.bar")
.addClasspathResource("org/activiti/expenseProcess.bpmn20.xml")
.addClasspathResource("org/activiti/expenseProcess.png")
.deploy(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey("expense")
.singleResult();
String diagramResourceName = processDefinition.getDiagramResourceName();
InputStream imageStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), diagramResourceName);
<property name="createDiagramOnDeploy" value="false" /><definitions ... targetNamespace="yourCategory" ... />repositoryService
.createDeployment()
.category("yourCategory")
...
.deploy();