zoukankan      html  css  js  c++  java
  • Activiti流程定义部署方式

    1 bpmn png方式部署

        
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    /**部署流程定义(从classpath)*/ @Test public void deploymentProcessDefinition_classpath(){ Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createDeployment()//创建一个部署对象 .name("流程定义")//添加部署的名称 .addClasspathResource("diagrams/helloworld.bpmn")//从classpath的资源中加载,一次只能加载一个文件 .addClasspathResource("diagrams/helloworld.png")//从classpath的资源中加载,一次只能加载一个文件 .deploy();//完成部署 System.out.println("部署ID:"+deployment.getId());// System.out.println("部署名称:"+deployment.getName());// }

    2 zip方式部署

        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        
        /**部署流程定义(从zip)*/
        @Test
        public void deploymentProcessDefinition_zip(){
            InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.zip");
            ZipInputStream zipInputStream = new ZipInputStream(in);
            Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
                            .createDeployment()//创建一个部署对象
                            .name("流程定义")//添加部署的名称
                            .addZipInputStream(zipInputStream)//指定zip格式的文件完成部署
                            .deploy();//完成部署
            System.out.println("部署ID:"+deployment.getId());//
            System.out.println("部署名称:"+deployment.getName());//
        }

    3

     

    通过Classpath的方式加载资源文件来部署流程定义,这种方式始终有局限性,

    实际项目的话,需要使用动态导入流程定义文件,可以通过bpmn和png文件打包成zip压缩包,

    然后用户界面直接导入到系统,然后在解析部署流程定义,Activiti插件是支持这种方式的。

    把bpmn流程文件和png流程图文件打成zip压缩包,将文件上传然后通过zip方式部署

        /**部署流程定义*/
        @Override
        public void saveNewDeploye(File file, String filename) {
            try {
                //2:将File类型的文件转化成ZipInputStream流
                ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file));
                repositoryService.createDeployment()//创建部署对象
                                .name(filename)//添加部署名称
                                .addZipInputStream(zipInputStream)//
                                .deploy();//完成部署
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
  • 相关阅读:
    内存屏障指令
    k64 datasheet学习笔记45---10/100-Mbps Ethernet MAC(ENET)之功能描述
    k64 datasheet学习笔记45---10/100-Mbps Ethernet MAC(ENET)之概述
    Haskell 笔记 ③
    UVA 11754 (暴力+中国剩余定理)
    Haskell 笔记 ②
    Haskell 笔记 ①
    HDU 1072(记忆化BFS)
    POJ 2096 (概率DP)
    HDU 4405 (概率DP)
  • 原文地址:https://www.cnblogs.com/miye/p/7306927.html
Copyright © 2011-2022 走看看