由于使用数据库为informix,但之前使用的Activiti工作流不能配合使用,网上找了另一种工作流框架Jbpm试一试:
eclipse:
1.下载jbpm4.4,地址:https://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4
下载好后先安装jbpm插件,在eclipse的help->install new software ->add
name : jbpm4.4
location:C:\Users\hzk\Desktop\jbpm\jbpm-4.4\install\src\gpd
2.引入相关jar包和配置文件
C:\Users\hzk\Desktop\jbpm\jbpm-4.4\lib下所有jar包+C:\Users\hzk\Desktop\jbpm\jbpm-4.4下的jbpm.jar
C:\Users\hzk\Desktop\jbpm\jbpm-4.4\examples\src下的所有xml和properties文件
3.写代码:
package com.hzk.hello;
import junit.framework.TestCase;
import org.jbpm.api.*;
import java.util.*;
public class HelloTest extends TestCase {
ProcessEngine processEngine;//定义流程引擎
public HelloTest()//构造函数
{
//初始化流程引擎
//作用是自动读取src目录下的jbpm.cfg.xml的内容
processEngine=Configuration.getProcessEngine();
}
public void testDeploy()//测试发布函数
{
//定义RepositoryService对象
RepositoryService repositoryService = processEngine.getRepositoryService();
//发布流程定义
String deploymentId = repositoryService.createDeployment().addResourceFromClasspath("helloworld.jpdl.xml").deploy();
//查看流程定义信息,获得流程定义信息List
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().list();
//循环打印流程定义信息
for(ProcessDefinition pd:list)
{
System.out.println(pd.getId());
}
//删除流程定义(级联删除),防止同一个流程定义下有多个子流程定义而无法删除的情况
repositoryService.deleteDeploymentCascade(deploymentId);
//查看删除后,已发布的流程定义的总数预计输出0
System.out.println(repositoryService.createProcessDefinitionQuery().list().size());
}
}
4.整体文件目录如下:
idea插件下载:
https://plugins.jetbrains.com/files/4612/8616/JBoss_jBPM_8616.zip?updateId=8616&pluginId=4612&uuid=62fd11af-a39c-4a32-b3a7-778f24779fb4&code=IU&build=163.7743.44