package com.zcc.activiti02;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.apache.commons.io.IOUtils; import java.io.*; /**
* 从act_ge_bytearray表中查询资源文件并保存到桌面文件夹中
*
*/
public class QueryBpmnFile {
public static void main(String[] args) {
//创建流程引擎配置类
ProcessEngineConfiguration processEngineConfiguration=
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//流程引擎对象
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService();
//获取查询器
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
//设置查询条件
processDefinitionQuery.processDefinitionKey("myProcess"); //执行查询操作,得到想要流程定义信息
ProcessDefinition processDefinition = processDefinitionQuery.singleResult(); //通过流程定义信息得到部署id
String deploymentId = processDefinition.getDeploymentId(); //实现读写bpmn文件信息
InputStream bpmnIs = repositoryService.getResourceAsStream(deploymentId, processDefinition.getResourceName()); //构建输出流
FileOutputStream bpmnOs = null;
try {
bpmnOs = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\新建文件夹\\"+processDefinition.getResourceName());
} catch (FileNotFoundException e) {
e.printStackTrace();
} //输入流,输出流的转换
try {
IOUtils.copy(bpmnIs,bpmnOs);
} catch (IOException e) {
e.printStackTrace();
} }
}

最新文章

  1. 微信小程序-上传下载
  2. javascript_core_05之正则表达式
  3. JavaScript(四)——DOM操作——Window.document对象
  4. UDP穿透NAT原理解析
  5. ASP.NET Core EF Sample
  6. bash脚本编程之二 字符串测试及for循环
  7. css3之边框新属性
  8. NotifyIcon 将窗口最小化到托盘
  9. [ActionScript3.0] 传递任意数量的参数
  10. java开发--反射技术
  11. ValidateRequest="false" 无效
  12. ping 命令详解
  13. 文件IO 练习题
  14. Django中静态文件引用优化
  15. cf455A Boredom
  16. Visual Studio2017数据库架构比较
  17. 关于transform的3D变形函数
  18. Csharp 连接NHibernate下需要注意的几个点
  19. button theme
  20. node.js 使用 net 模块模拟 websocket 握手,进行数据传递。

热门文章

  1. Android深度探索-卷1第三章心得体会
  2. MongoDB Windows之ZIP安装
  3. BCrypt密码加密
  4. ELK+filebeat+redis 日志分析平台
  5. C#base使用笔记
  6. C语言中的关键字初识
  7. mybatis的缓存机制及用例介绍
  8. ajax基本原理实现
  9. Nginx动静分离基本概述
  10. web之请求转发与重定向