开发文件上传,部署流程模板。

首先,开发jsp页面,deploy.jsp

${RETURN_MESSAGE}


其中,上传form的action为portlet:actionURL,它的name就是在portlet类中的方法名,即deployUploadAction

接下来开发action代码

对应的上传处理代码段deployUploadAction:

public void deployUploadAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception{

UploadPortletRequest upr = PortalUtil.getUploadPortletRequest(actionRequest);

String fileFieldName = "file";

if (upr.getSize(fileFieldName) == 0)

{

throw new Exception("空文件!");

}

String fileName = upr.getFileName(fileFieldName);

try {

// 得到输入流(字节流)对象

InputStream fileInputStream = upr.getFileAsStream(fileFieldName);//file.getInputStream();

// 文件的扩展名

String extension = FilenameUtils.getExtension(fileName);

// zip或者bar类型的文件用ZipInputStream方式部署

DeploymentBuilder deployment = repositoryService.createDeployment();

if (extension.equals("zip") || extension.equals("bar")) {

ZipInputStream zip = new ZipInputStream(fileInputStream);

deployment.addZipInputStream(zip);

} else if (extension.equals("xml")){

// xml类型的文件

deployment.addInputStream(fileName, fileInputStream);

}

deployment.deploy();

_log.info(fileName +" deploy success!");

} catch (Exception e) {

_log.error(fileName + " error on deploy process, because of file input stream");

}

String message = "BPMN file upload success!";

actionRequest.setAttribute("RETURN_MESSAGE", message);

}

运行界面:

首页,一开始有7个流程模型。

上传xml文件,同时也支持zip、bar文件

上传成功,部署模板后,发现多出了一个。

程序调试日志

Activiti的集成开发系列文章集合在这里:

http://www.cnblogs.com/starcrm/p/6047486.html

方便索引。

全部工程源代码下载

Liferay7 BPM门户开发之44: 集成Activiti展示流程列表

处理依赖关系 集成Activiti之前,必须搞清楚其中的依赖关系,才能在Gradle里进行配置. 依赖关系: 例如,其中activiti-engine依赖于activiti-bpmn-converte ...

Liferay7 BPM门户开发之26: 集成Activiti到Liferay7

开发顺序: 实战任务1,开发BPM管理后台(用于在Liferay管理中心管理Activiti模型上传) 一个熟悉Portlet操作的项目,为开发打好基础. http://www.cnblogs.com ...

Liferay7 BPM门户开发之46: 集成Activiti用户、用户组、成员关系同步

在实际的BPM集成开发过程中,Liferay和Activiti这两个异构的系统之间,用户.组的同步需求非常重要,用来实现签收组的概念,比如指定签收组.会签.抢签都需要用到. Activiti可以通过自 ...

Liferay7 BPM门户开发之47: 集成Activiti待办已办任务清单和流程启动

首先增加两个Portlet,分别用于待办处理.流程启动.待办是别人发起的流程,流到自己这里的流程:流程启动用于发起新的流程. 程序文件放置于 在ACtivit中待办概念分两种,1是指派给你的,专门的指 ...

Liferay7 BPM门户开发之37: Liferay7下的OSGi Hook集成开发

hook开发是Liferay客制扩展的一种方式,比插件灵活,即可以扩展liferay门户,也能对原有特性进行更改,Liferay有许多内置的服务,比如用hook甚至可以覆盖Liferay服务. 可作为 ...

Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)

开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门 ...

Liferay7 BPM门户开发之17: Portlet 生命周期

Portlet 生命周期 init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy() ...

Liferay7 BPM门户开发之12:acitiviti和liferay用户权限体系集成

写到第12章才出现Liferay的内容,希望可以厚积薄发. 我们的目标是不使用不维护Activiti的用户组织架构,只维护Liferay的体系,这样的好处是非常明显的,即不用做组织架构的同步工作. 原 ...

Liferay7 BPM门户开发之8: Activiti实用问题集合

1.如何实现审核的上级获取(任务逐级审批) 这个是必备功能,通过Spring的注入+Activiti表达式可以很容易解决. 可参考: http://blog.csdn.net/sunxing007/a ...

随机推荐

【krpano】浏览点赞插件(源码+介绍+预览)

简介 最近几天研究了如何在krpano全景的基础上实现记录浏览量和点赞次数,写了一个插件,方便大家使用. 效果截图如下: 每当有用户打开该全景页面时,浏览量会自动加1: 用户可以主动点击点赞按钮,点击 ...

SPSS数据分析—两阶段最小二乘法

传统线性模型的假设之一是因变量之间相互独立,并且如果自变量之间不独立,会产生共线性,对于模型的精度也是会有影响的.虽然完全独立的两个变量是不存在的,但是我们在分析中也可以使用一些手段尽量减小这些问题产 ...

PHP实现简易blog

最近,有时间看了点PHP的代码.参考PHP100教程做了简单的blog,网易云课堂2012年的教程,需要的可以找一下,这里面简单的记录一下. 首先是集成环境,这里选用的WAMP:http://www. ...

Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

Atitit.android js 的键盘按键检测Back键Home键和Menu键事件 1. onKeyDown @Override public boolean onKeyDown(int keyC ...

任意List 和DatabTable的转换

public static IEnumerable ToEntityList(this DataTable table) where T : class      ...

重温WCF之消息拦截与篡改(八)

我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过借 ...

Android UI-开源框架ImageLoader的完美例子

Android开源框架ImageLoader的完美例子 2013年8月19日开源框架之Universal_Image_Loader学习 很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片, ...

What Influences Method Call Performance in Java?--reference

reference from:https://www.voxxed.com/blog/2015/02/too-fast-too-megamorphic-what-influences-method-c ...

excel下拉级联的做法

前面的文章讲了,excel下拉级联,重新选第一个下拉,后面那个值怎么清除.今天我讲下excel利用宏解决整个表格的级联下拉问题. 我遇到的情况是两个下垃圾连,第一个医生类别,第二个医生职称,而且我是要 ...

C语言第五次博客作业

一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1) 首先先定义narcissistic函数. (2)定义四个整形变量n,a,d,cnt,sum, ...

bpmn 文件 服务器部署,Liferay7 BPM门户开发之45: 集成Activiti文件上传部署流程BPMN模型...相关推荐

  1. Liferay7 BPM门户开发之46: 集成Activiti用户、用户组、成员关系同步

    在实际的BPM集成开发过程中,Liferay和Activiti这两个异构的系统之间,用户.组的同步需求非常重要,用来实现签收组的概念,比如指定签收组.会签.抢签都需要用到. Activiti可以通过自 ...

  2. Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)

    开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门 ...

  3. Liferay7 BPM门户开发之5: Activiti和Spring集成

    参考文档: https://github.com/jbarrez/spring-boot-with-activiti-example https://github.com/sxyx2008/sprin ...

  4. Liferay7 BPM门户开发之11: Activiti工作流程开发的一些统一规则和实现原理(完整版)...

    注意:以下规则是我为了规范流程的处理过程,不是Activiti公司的官方规定. 1.流程启动需要设置启动者,在Demo程序中,"启动者变量"名统一设置为initUserId 启动时 ...

  5. Liferay7 BPM门户开发之4: Activiti事件处理和监听Event handlers

    事件机制从Activiti 5.15开始引入,这非常棒,他可以让你实现委托. 可以通过配置添加事件监听器,也可以通过Runtime API加入注册事件. 所有的事件参数子类型都来自org.activi ...

  6. Liferay7 BPM门户开发之24: Liferay7应用程序安全

    整理中...... Resources, Roles, and Permissions Portal Access Control List (PACL) Custom SSO Providers A ...

  7. liferay7.0 mysql_Liferay7 BPM门户开发之6: Activiti数据库换为mysql

    第一步: 在mysql中创建数据库名字叫 'activiti' 执行D:\activiti-5.21.0\database\create下的脚本 第二步: 打开=> apache-tomcat/ ...

  8. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小

    python 实现统计ftp服务器指定目录下文件夹数目.文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类 ...

  9. CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除

    CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...

最新文章

  1. smarty模板中类似for的功能实现
  2. 巧用事件查看器维护服务器安全
  3. 离散数学平面图对偶图和着色问题
  4. Alone in Office
  5. 洛谷P1346-电车【日常图论,最短路,SPFA】
  6. require.ensure与require AMD的区别
  7. java中使用kotlin_在Kotlin中使用libGDX
  8. python面试题总结(2)--编码规范
  9. WPF中显示任意目录的图片或其他资源文件
  10. 亚马逊最大无人售货超市开张,云端结账随拿随走
  11. 局域网传文件_手机和电脑之间互传比较大的文件,哪种方式比较好?
  12. 《phrack》黑客杂志
  13. 读论文看到的好的英文词句表达
  14. 上计算机课没有签到肿么办,钉钉教学直播如何课前签到 钉钉直播如何提醒未签到的学生...
  15. hd6630m可以玩lol吗_《LOL》流畅玩!Intel HD620核显性能实测
  16. el-scrollbar 优化滚动条样式
  17. 语音信号的短时平均过零率
  18. 时艳强对话杨霞:智能合约的安全bug,有可能让你的资产瞬间归零
  19. 北京工程测量乙级资质申请流程
  20. 张超 计算机 清华 论文,张超-清华大学航天航空学院

热门文章

  1. ZTE Axon 20 5G Phone Review
  2. Android 原生控件ViewFlipper实现淘宝头条垂直滚动广告条
  3. 酸吗?腾讯工资又涨了:人均月薪7.85万元,跟小乐学习,带您进大厂!
  4. 让Everything搜索结果更清爽
  5. 前端传值,java后端接收
  6. 初学者C语言练习题-结构体
  7. “长寿饮食”怎么吃才长寿
  8. idea 编辑器如何输入自增序号
  9. 赶快收藏,PyTorch 常用代码段PDF合辑版来了
  10. mt4双线macd_99%的人使用MACD指标失败的原因!