JBPM4.4 使用非zip方式发布流程 实现流程图加载
2014-10-27 17:11
531 查看
JBPM4.4 显示流程图片,需要携带流程图发布;这样大多数是采用打包zip方式来部署流程,太过繁琐;所以我采用如下方式发布流程
action接收processInstanceId,(一般情况下processInstanceId与ExecutionId相同)得到流程图,并在当前activity上画框,来显示流程走到哪里。
RepositoryService repositoryService= processEngine.getRepositoryService(); NewDeployment deploy= repositoryService.createDeployment(); deploy.addResourceFromClasspath("newSite.jpdl.xml") .addResourceFromClasspath("newSite.png");
action接收processInstanceId,(一般情况下processInstanceId与ExecutionId相同)得到流程图,并在当前activity上画框,来显示流程走到哪里。
public String showImage(){ ProcessInstance processInstance = executionService .findProcessInstanceById(pid); String processDefinitionId = processInstance.getProcessDefinitionId(); ProcessDefinition processDefinition = repositoryService .createProcessDefinitionQuery().processDefinitionId( processDefinitionId).uniqueResult(); Set<String> activityNames = processInstance.findActiveActivityNames(); BufferedImage image = null; for (String activityName : activityNames) { ActivityCoordinates ac = repositoryService.getActivityCoordinates( processInstance.getProcessDefinitionId(), activityName); InputStream is = repositoryService.getResourceAsStream( processDefinition.getDeploymentId(), processDefinition .getImageResourceName()); image = ImageIO.read(is); Graphics g = image.getGraphics(); g.setColor(new Color(255, 0, 0)); g.drawRect(ac.getX(), ac.getY(), ac.getWidth(), ac.getHeight()); g.dispose(); } ByteArrayOutputStream output = new ByteArrayOutputStream(); ImageIO.write(image, "PNG", output); ByteArrayInputStream input = new ByteArrayInputStream(output .toByteArray()); this.setInputStream(input); return SUCCESS; }structs里面配置result为stream类型,class交给spring处理没有集成的可以修改成原有路径
<action name="processImage" class="processImageAction"> <result type="stream"> <param name="contentType">image/png</param> <param name="inputName">inputStream</param> </result> </action>jsp页面显示
<img src="processImage.action?pid=<s:property value='id'/>"/>
相关文章推荐
- JBPM4.4 使用泳道动态指定下一个任务节点任务人的两种方式之方法二
- 开源Jbpm4.4+ssh2+oracle10实现表单、流程自定义开发流程业务
- JBPM4.4 发布流程时报错 could not insert: [org.jbpm.pvm.internal.lob.Lob]
- 使用requireJS加载不符合AMD规范的js文件:shim的使用方式和实现原理
- 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)
- JBPM4.4 使用泳道动态指定下一个任务节点任务人的两种方式之一 (assignment-handler)
- 使用requireJS加载不符合AMD规范的js文件:shim的使用方式和实现原理
- 使用JavaScript实现访问本站点任何页面都加载Frame的一种实现方式
- 转载 使用JBoss jBPM实现流程访问和执行的授权
- jbpm 不使用zip发布流程
- jbpm4.4根据.jpdl.xml流程定义文件,得到流程图.png
- JQuery条件下使用 JS方式实现百度地图加载数据库中的坐标并实现动态刷新
- 使用requireJS加载不符合AMD规范的js文件:shim的使用方式和实现原理
- 使用requireJS加载不符合AMD规范的js文件:shim的使用方式和实现原理
- 使用JavaScript判断图片是否加载完成的三种实现方式
- JBPM4.4学习之三:流程变量概念及使用
- 【代码篇】JBPM4.4开发流程节点(动态代理实现流程管理业务)
- 关于使用struts2发布JBPM的流程定义
- 使用Poco实现插件方式加载动态库