上篇介绍了JBPM的核心引擎ProcessEngine,在该引擎中有几种常用的操作方法,现在就这些方法来进行详细的介绍,首先要介绍的是部署对象。
部署对象,表示的是一次部署的多个文件的信息,通常有jpdl.xml和png两个文件。其中这两个文件是通过jbpm画图之后产生的,用于流程进行。
部署对象时,需要通过核心引擎提供的方法,首先是获取流程资源服务接口,然后调用createDeployment方法进行文件的加载与部署,加载文件的方法有多种,如下:
下面主要介绍两种:
1、 通过加载classpath下的jpdl.xml和png文件进行部署
public void testDeploy(){
String deployId=processEngine.getRepositoryService().createDeployment()//
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml")//
.addResourceFromClasspath("helloworld/helloworld.png")//
.deploy();
System.out.println("部署成功:deployId= "+deployId);
}
2、通过加载classpath下的压缩文件zip进行部署
public void testDeploy_zip(){
//获取压缩文件流
InputStream in=this.getClass().getClassLoader().getResourceAsStream("test.zip");
ZipInputStream zipInputStream=new ZipInputStream(in);
//部署
String deployId=processEngine.getRepositoryService().createDeployment()//
.addResourcesFromZipInputStream(zipInputStream)//
.deploy();
System.out.println("部署成功:deployId= "+deployId);
}
流程部署完之后,主要存储在三张表中,如下:
jbpm4_deployment流程定义表
jbpm4_lob存储表
jbpm4_deployprop流程定义属性表
流程的部署相对来说还是比较容易理解的,在使用的过程中,通过资源服务接口来获取创建的方法。需要注意的是部署流程过程中所需要的jpdl.xml文件和png的路径问题,一般将其放在classpath目录下,这样方便获取和加载。