我在使用jBPM的时候,遇到一个问题。
我在一个方法里面需要创建一个任务的实例,使用了下面的代码:
java 代码
- private void test() {
- ProcessInstance processInstance = this.getProcessInstance(0L);
- Token token = processInstance.getRootToken();
- TaskNode taskNode = (TaskNode) token.getNode();
- Task task = taskNode.getTask("taskName");
- TaskMgmtInstance tmi = processInstance.getTaskMgmtInstance();
- TaskInstance taskInstance = tmi.createTaskInstance(task, token);
- }
结果却发现抛出了ClassCassException。原因是jBPM在加载ProcessInstance的时候,对 token 等懒加载了,所以返回的token以及由token得到的taskNode都是代理对象。这个代理对象是 Node 的子类,所以如果 token.getNode() 的结果不转换为 TaskNode 类型的话,是不会出错的。但是如果要转换为 TaskNode 类型,就会抛异常,尽管这个Node确实是 TaskNode 类型的。
按理说,Hibernate对Node节点进行代理的时候,应该是用这个Node的实际类型(即Node的子类类型,比如TaskNode等)来代理的,而不应该用父类的类型(即Node类型)来代理。为什么还会这样呢?
不知道有没有什么办法解决这个问题? 我用了以下的方式来处理:
java 代码
- Task task = tmi.getTaskMgmtDefinition().getTask("taskName");
这样就不会有问题。
分享到:
相关推荐
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
总之,解决jbpm4.3问题需要对jbpm的工作原理、数据库结构以及部署环境有深入的理解。通过对错误日志的分析、数据库的检查以及配置的核查,我们可以逐步找到问题的根源并采取相应措施进行修复。同时,持续学习和关注...
### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process Management, BPM)工作流引擎。它支持多种可执行流程语言,并且可以在任何JavaEE应用...
jbpm jbpm4.3.jar DDDDDDDD
jbpm使用案例,非常不错,大家都来看看吧。
每一个流程产生了多少个流程实例,有哪些流程实例结束了,哪些处于活动状态,哪些挂起了;同时对于每一个流程实例当前走到什么位置了(流程的进度状况)等等。通过查看JBPM的API我们发现API里并没有提供实现该功能...
通过上述两份文档,读者可以对jBPM 4.3的常见问题有更直观的认识,并学习如何解决这些问题,从而提高使用效率,避免不必要的困扰。同时,了解核心概念有助于构建完整的业务流程管理系统,推动企业业务自动化的发展。
jbpm需要自己的session来执行工作流操作,而SSH框架通常有自己的持久化机制。这里可以利用Spring的Transaction Management,统一管理事务和session,确保数据的一致性。 此外,Spring-modules-0.8中的spring31模块...
你可以通过阅读这个文档,深入了解jbPM 3.2的使用方法,解决在实际项目中遇到的问题。 总的来说,jbPM 3.2是一个强大的工作流管理系统,通过深入理解和实践,开发者可以构建出高效、灵活的业务流程,提高企业的业务...
jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...
从商业层面来看,部署工作流或业务流程迫使组织创建正式的程序描述,这有助于揭示业务效率方面的问题。在很多情况下,这一过程会暴露出对企业有严重影响的业务低效问题,并成为流程再工程的障碍。因此,通过引入 BPM...
而工具则可能是一些辅助开发的库、配置文件或脚本,有助于快速搭建和调试环境。 "jbpm4struts2"可能是整合后的项目名称,表示jbpm与Struts2的集成实例,而"jbpm4struts2的包.png"则可能是项目结构图或者关键配置的...
导入这些jbpm数据库数据,用户可以直接复用已有的流程设置,无需从头开始配置,大大节省了时间和资源。对于希望快速搭建和运行jbpm工作流系统的人来说,这是一个非常有价值的资源。同时,这种数据导入操作也常用于...
在《jBPM4.4中文用户手册》中,用户可以找到更详细的使用指南,包括安装配置、基本操作、示例教程以及常见问题解答等内容。手册将帮助用户快速上手,实现jBPM在实际项目中的应用。 总的来说,jBPM4.4是企业级业务...
JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。
"JBPM最佳实践.txt"则可能包含了一系列在实际项目中运用jbpm时的最佳实践建议,如性能优化、流程设计原则、错误处理策略等,旨在帮助开发者避免常见问题,提升项目的质量和效率。 通过这些文档,学习者可以全面了解...
在 jbpm 4.4 中,主要使用的数据库表有: jbpm4_deployment jbpm4_deployment 表用于存储流程部署的记录,包括流程定义、流程实例、任务等信息。该表通过 dbid 字段关联到 jbpm4_deployprop 和 jbpm4_lob 两个表。...
- **问题与疑问解答**:提供了一份FAQ列表,帮助解决常见问题。 #### 四、快速启动案例 - **调用Java服务**:演示如何通过脚本任务、Java处理器或自定义领域特定任务等方式调用Java服务。 - **使用脚本任务**:...
【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...