上篇介绍了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目录下,这样方便获取和加载。