JBpm部署流程后,其他的表都有值,jbpm4_deployprop表为空

问题描述

我采用的以下方式,部署流程InputStream is = new ByteArrayInputStream(definitionXml.getBytes());repositoryService.createDeployment().addResourceFromInputStream("process", is).deploy();

解决方案

问题就出在参数resourceName:process上,JBPM部署时会判断resourceName是否以“.jpdl.xml“作为后缀,如果是,JBPM才会解析第二个参数为流程定义,否则不做处理。所以在jbpm4_deployprop就不会有数据了。JBPM相关源码在ProcessDeployer.java中如下:Java代码 @SuppressWarnings("unchecked") public void deploy(DeploymentImpl deployment) { for (String resourceName: deployment.getResourceNames()) { if (resourceName.endsWith(extension)) { byte[] bytes = deployment.getBytes(resourceName); InputStream inputStream = new ByteArrayInputStream(bytes); Parse parse = parser.createParse(); parse.contextMapPut(Parse.CONTEXT_KEY_DEPLOYMENT, deployment); parse.setProblems(deployment.getProblems()); parse.setInputStream(inputStream); parse.execute(); List<ProcessDefinitionImpl> processDefinitions = (List<ProcessDefinitionImpl>) parse.getDocumentObject(); if (processDefinitions!=null) { for (ProcessDefinitionImpl processDefinition : processDefinitions) { if ((processDefinition != null) && (processDefinition.getName() != null)) { String processDefinitionName = processDefinition.getName(); processDefinition.setSuspended(deployment.isSuspended()); String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(extension)) + ".png"; if (deployment.getResourceNames().contains(imageResourceName)) { processDefinition.setImageResourceName(imageResourceName); } processDefinition.setDeploymentDbid(deployment.getDbid()); if (deployment.hasObjectProperties(processDefinitionName)) { String key = deployment.getProcessDefinitionKey(processDefinitionName); String id = deployment.getProcessDefinitionId(processDefinitionName); Long version = deployment.getProcessDefinitionVersion(processDefinitionName); processDefinition.setId(id); processDefinition.setKey(key); processDefinition.setVersion(version.intValue()); } else { checkKey(processDefinition, deployment); checkVersion(processDefinition, deployment); checkId(processDefinition, deployment); deployment.setProcessDefinitionId(processDefinitionName, processDefinition.getId()); deployment.setProcessDefinitionKey(processDefinitionName, processDefinition.getKey()); deployment.setProcessDefinitionVersion(processDefinitionName, new Long(processDefinition.getVersion())); //execute migration Map<ProcessDefinition, MigrationDescriptor> migrations = (Map<ProcessDefinition, MigrationDescriptor>)parse.contextMapGet(Parse.CONTEXT_KEY_MIGRATIONS); if (migrations != null) { MigrationDescriptor migrationDescriptor = migrations.get(processDefinition); if (migrationDescriptor != null) { InstanceMigrator.migrateAll(processDefinition, migrationDescriptor); } } } deployment.addObject(processDefinitionName, processDefinition); } } } } } } @SuppressWarnings("unchecked") public void deploy(DeploymentImpl deployment) { for (String resourceName: deployment.getResourceNames()) { if (resourceName.endsWith(extension)) { byte[] bytes = deployment.getBytes(resourceName); InputStream inputStream = new ByteArrayInputStream(bytes); Parse parse = parser.createParse(); parse.contextMapPut(Parse.CONTEXT_KEY_DEPLOYMENT, deployment); parse.setProblems(deployment.getProblems()); parse.setInputStream(inputStream); parse.execute(); List<ProcessDefinitionImpl> processDefinitions = (List<ProcessDefinitionImpl>) parse.getDocumentObject(); if (processDefinitions!=null) { for (ProcessDefinitionImpl processDefinition : processDefinitions) { if ((processDefinition != null) && (processDefinition.getName() != null)) { String processDefinitionName = processDefinition.getName(); processDefinition.setSuspended(deployment.isSuspended()); String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(extension)) + ".png"; if (deployment.getResourceNames().contains(imageResourceName)) { processDefinition.setImageResourceName(imageResourceName); } processDefinition.setDeploymentDbid(deployment.getDbid()); if (deployment.hasObjectProperties(processDefinitionName)) { String key = deployment.getProcessDefinitionKey(processDefinitionName); String id = deployment.getProcessDefinitionId(processDefinitionName); Long version = deployment.getProcessDefinitionVersion(processDefinitionName); processDefinition.setId(id); processDefinition.setKey(key); processDefinition.setVersion(version.intValue()); } else { checkKey(processDefinition, deployment); checkVersion(processDefinition, deployment); checkId(processDefinition, deployment); deployment.setProcessDefinitionId(processDefinitionName, processDefinition.getId()); deployment.setProcessDefinitionKey(processDefinitionName, processDefinition.getKey()); deployment.setProcessDefinitionVersion(processDefinitionName, new Long(processDefinition.getVersion())); //execute migration Map<ProcessDefinition, MigrationDescriptor> migrations = (Map<ProcessDefinition, MigrationDescriptor>)parse.contextMapGet(Parse.CONTEXT_KEY_MIGRATIONS); if (migrations != null) { MigrationDescriptor migrationDescriptor = migrations.get(processDefinition); if (migrationDescriptor != null) { InstanceMigrator.migrateAll(processDefinition, migrationDescriptor); } } } deployment.addObject(processDefinitionName, processDefinition); } } } } } } 所以把 "process"改为"process.jpdl.xml"就OK了!

时间: 2024-11-05 20:32:38

JBpm部署流程后,其他的表都有值,jbpm4_deployprop表为空的相关文章

activiti自定义流程之整合(四):整合自定义表单部署流程定义

综合前几篇博文内容,我想在整合这一部分中应该会有很多模块会跳过不讲,就如自定义表单的表单列表那一块,因为这些模块在整合的过程中都几乎没有什么改动,再多讲也是重复无用功. 正因为如此,在创建了流程模型之后,模型列表的展示也是和之前的没有什么区别,而且都是很简单的后台查询以及前台展示,这一部分也就不过多的讲了. 模型列表页面如下:   至于其中的修改和删除也没什么多讲的,删除很简单,而修改也是activiti-modeler实现的主要功能,我们只需要跳转过去就行. 重要的部分在于部署,因为点击部署到

鼠标移动到某个单元格上后,整个列都变色的实现方法_表单特效

                        [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 以上代码可以实现鼠标移动到单元格上,单元格变色,现在我想实现鼠标移动到某个单元格上后,整个列都变色不知道可以不可以实现呢? 如何定义表格的鼠标隔列变色行为 当鼠标经过时希望实现隔列变色(最好是反色) ,效果示例如下: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 代码已经帖上来,现在鼠标移动到单元格变色 phx.rows[i].cells[j].onmouseover=fun

mysql jbpm部署XML正常,但部署.zip文件出错, 就是 关于Hibernate保存图片到Mysql数据库的配置问题

问题描述 applicationContext.xml文件关于Hibernate的配置<propertyname="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialecthibernate.show_sql=truehibernate.format_sql=falsehibernate.query.substitutions=true1,fals

spring-Hibernate+Spring整合后自动建表问题

问题描述 Hibernate+Spring整合后自动建表问题 我测试了一个项目,初期没有问题,但是当我修改了自动生成的数据信息后发现,重新部署后数据仍然为原来的信息,接着我尝试了修改表名,重新部署后表名也和原来一样. 以下是配置信息: Hibernate: <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="jdbc.batc

Vsphere笔记06 Vcenter 部署流程 1

Vcenter 部署流程 1   一.环境需求   1.需要两台装着WIN2K8 R2 64X的服务器   2.启用一台要添加活动目录角色,并且配置DC,DC的参数如下: 域名:justech-dc.com 注释:在DC的安装调试过程中DNS 会被要求安装   3.要求在DC上创建一个VCENTER 服务器登陆域的用户 用户名:Vcenter@justech-dc.com 口令:2017@Justech   4.SSO 服务器和VCENTER服务器及INVETORY 服务器可以在同一台服务器上

activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义

注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型         (3)流程模型列表展示:activiti自定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示 1.maven导包及spring的一些基本配置与之前的没有什么变化,依旧沿用

在 IBM Business Process Manager V8 中部署流程应用程序

关于本教程 本教程介绍了如何安装或部署流程应用程序,并管理它们.流程应用程序生命周期包括安装.管理和撤销部署快照.虽然版本控制的考虑因素也是生命周期的一部分,但本教程中并不包含它们. 在开发流程时,您可以在 Process Designer 中充分利用各工具所支持的迭代方法.同样,使用 IBM Integration Designer(以下简称 Integration Designer),您可以同步和部署到 Process Center,或选择导出应用程序文件,并将它安装到 Process Se

mvc-ASP.NET MVC4在部署IIS后,运行时显示的是整个Web的目录列表

问题描述 ASP.NET MVC4在部署IIS后,运行时显示的是整个Web的目录列表 预览网站,只能看到目录是怎么回事? 是我IIS部署有问题,Web组件缺少还是什么问题呢? 急急急,求解答,谢谢了! 好像都不是目录浏览的问题 解决方案 我用的版本是2013 解决方案二: 是因为你开启了目录浏览,在IIS中关掉就可以了!选择你的站点,右侧会出现如图所示的界面

利用100行代码动态创建并部署流程

1. 关于Activiti中的BPMN Model 在5.12版本中把各个模块进行了大幅度的划分,值得一提的就是activiti-bpmn-的几个模块(activiti-bpmn-converter.activiti-bpmn-layout.activiti-bpmn-model). activiti-bpmn-model:包含了BPMN2.0规范中部分对应的Java定义(也包括Activiti自己扩展的),描述了一些基本属性.结构: activiti-bpmn-converter:该模块负责对