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();
            }
        }
  • 相关阅读:
    数据取证任务
    VMware虚拟机重置密码
    pon(无源光纤网络)
    Gpon与Epon的区别
    DNS相关
    牛人博客收集
    值得细细品读的URL资源
    SQL注入
    IPSec方案部署(多业务场景)
    python专题-函数式编程
  • 原文地址:https://www.cnblogs.com/miye/p/7306927.html
Copyright © 2011-2022 走看看