在activiti工作流中的将工作流文件通过activit-probe的deployment部署文件。实现原理如下。通过activiti-probe中调用commons-fileupload将文件上传到并部署。源代码如下:
package org.activiti.rest.api.repository;
import java.util.List;
/**
* @author Tijs Rademakers
*/
public class DeploymentUploadResource extends SecuredResource {
@Post
public void uploadDeployment(Representation entity) {
try {
if(authenticate(SecuredResource.ADMIN) == false) return;
RestletFileUpload upload = new RestletFileUpload(new DiskFileItemFactory());
List<FileItem> items = upload.parseRepresentation(entity);
FileItem uploadItem = null;
String successMethod = null;
for (FileItem fileItem : items) {
if(fileItem.getName() != null) {
uploadItem = fileItem;
} else if(fileItem.getFieldName().equals("success")){
successMethod = fileItem.getString();
}
}
DeploymentBuilder deploymentBuilder = ActivitiUtil.getRepositoryService().createDeployment();
String fileName = uploadItem.getName();
if (fileName.endsWith(".bpmn20.xml")) {
deploymentBuilder.addInputStream(fileName, uploadItem.getInputStream());
} else if (fileName.endsWith(".bar") || fileName.endsWith(".zip")) {
deploymentBuilder.addZipInputStream(new ZipInputStream(uploadItem.getInputStream()));
} else {
throw new ActivitiException("File must be of type .bpmn20.xml, .bar or .zip");
}
deploymentBuilder.name(fileName);
deploymentBuilder.deploy();
StringBuilder html = new StringBuilder();
html.append("<html>\n");
html.append(" <script type=\"text/javascript\">\n");
html.append(" " + successMethod + "()\n");
html.append(" </script>\n");
html.append("</html>\n");
getResponse().setEntity(html.toString(), MediaType.TEXT_HTML);
} catch (Exception e) {
throw new ActivitiException(e.getMessage(), e);
}
}
}
分享到:
相关推荐
activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细...
activiti工作流文档,超详细,从0基础开始入门,包括数据库介绍、核心api等介绍,满足日常开发所需
Activiti 工作流面试相关知识 RepositoryService、RuntimeService、TaskService、HistoryService分别表示什么操作
Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程
Activiti工作流课程Activiti工作流课程Activiti工作流课程
activiti工作流中文说明文档,activiti目前很少有中文的说明文档,此文档是本人整理的一份很全的关于activiti使用说明文档,希望能给开发者带来帮助
activiti工作流的 PPT 大致讲了一下activiti的常用API
activiti工作流课程
Activiti工作流使用手册_acticiti工作流操作手册文档V1.1操作教程手册 解决java开发使用Activiti遇到的问题和使用组件的讲解
基于前后端分离项目引入activiti工作流引擎,某些配置信息需根据自己项目情况修改
Activiti工作流示例ActivitiDemo 本示例带有全部源码,详细使用Canvas动画演示了Activiti工作流引擎的使用.
Activiti工作流详细讲解完整教程.pdf
这是一个简单的activiti工作流例子,是你快速学习掌握activiti工作流的使用,不必过多的看太多理论知识
Activiti工作流两天上手教程。详解工作流主流技术,从环境安装、核心API讲解到流程实例、任务执行,不错的java工作流教程
Activiti工作流引擎简介 1.俯瞰Activiti 2.Activiti开发之旅 3.Why Activiti? 4.Activiti的现状与未来
activiti工作流视频课程文档,非常实用,activiti入门课程
activiti工作流视频教程,对学习工作流的小伙伴来说。非常不错。
Activiti6.0工作流使用说明文档
1.2.1 Activiti数据表清单: 3 1.2.2 表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源) 3 1.2.4 表名:ACT_HI_ACTINST (历史节点表) 5 1.2.3 表名:ACT_GE_PROPERTY (系统相关属性) 4 1.2.5 表名:ACT_HI_...
实现了动态表单,各种流程审批等oa功能,springmvc+hibernate+springmvc+h2+activiti