以下是我的一个action中的一个方法:
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
JbpmConfiguration configuration = Utils.configuration;
JbpmContext jbpmContext = configuration.createJbpmContext();
String userName = (String) request.getSession()
.getAttribute("userName");
try {
TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession();
List list = taskMgmtSession.findPooledTaskInstances(userName);
request.setAttribute("list", list);
return mapping.findForward("list");
} finally {
jbpmContext.close();//在这里把上下文关闭掉了,引起了页面出错
}
}
我在action中取得当前登陆用户的所有任务的list,将它放进request中转发到jsp,并显示.此时context已经关闭
jsp部分代码如下
<table>
<tr>
<td>报销单ID</td>
<td>环节名称</td>
<td>建立时间</td>
<td>操作</td>
</tr>
<logic:iterate id="task" scope="request" name="list">
<tr>
<td><%=((TaskInstance) task).getVariable("baoxiaoId") %></td>//由于 variableInstances对象延迟加载,在取得变量的时候出错了
<td>${task.name}</td>
<td>${task.create}</td>
<td><input type="button" taskid="${task.id}" value="同意" onclick="agree(this.taskid);" /><input type="button" taskid="${task.id}" value="不同意" onclick="disagree(this.taskid);" /></td>
</tr>
</logic:iterate>
</table>
在取得任务的"baoxiaoId"变量时会出错,提示如下:
failed to lazily initialize a collection of role: org.jbpm.taskmgmt.exe.TaskInstance.variableInstances, no session or session was closed
错误大概意思是
org.jbpm.taskmgmt.exe.TaskInstance.variableInstances session已经关闭,延迟加载失败
在action中不把jbpmcontext对象关闭就没这问题了,但是此对象不关闭肯定是不合理的.
难道把jbpm包中自带的map文件的延迟加载去掉??
各位有什么好的解决办法啊?
问题已经解决:思路是使用过滤器,其中jbpm有个自带的过滤器就可以用,不用自己去写,具体请看jbpm-jpdl-3.2.3\src\jpdl\org\jbpm\web\JbpmContextFilter.java
分享到:
相关推荐
JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购...
JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z ...
JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z JBPM采购申请...
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
* JbpmContext:jbpmcontext对hibernate session提供了封装,提供了对JBPM相关对象的持久化功能 * ProcessDefinition:流程定义 * ProcessInstance:流程实例 * TaskInstance:任务实例 2. JBPM3开发步骤: * ...
本篇主要针对jbpm4.3使用过程中遇到的问题及其解决方法进行详细阐述。 首先,我们来看"jbpm4_3表结构和表字段说明 - gamestart104的专栏 - 博客频道 - CSDN_NET.htm"这个文件,这通常包含了jbpm4.3在数据库中使用的...
JbpmConfiguration类用于获取jbpm配置,例如通过getInstance方法加载jbpm.cfg.xml配置文件。JbpmContext类提供了一系列方法来管理流程定义的部署、获取任务列表、加载任务实例、创建新流程实例、获取会话等。 流程...
原代的jbpm4.4 没有用户身份验证 而公司邮箱新浪邮箱等等 都必须要省份验证功能!
jbpm jbpm4.3.jar DDDDDDDD
### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process Management, BPM)工作流引擎。它支持多种可执行流程语言,并且可以在任何JavaEE应用...
首先,我们来看"jBPM-4.x常见问题解决方案FAQ.docx",这个文档很可能包含了用户在使用jBPM 4.3时遇到的各种问题和相应的解决办法。常见问题可能包括流程部署失败、任务无法执行、数据持久化问题、工作流引擎性能优化...
你可以通过阅读这个文档,深入了解jbPM 3.2的使用方法,解决在实际项目中遇到的问题。 总的来说,jbPM 3.2是一个强大的工作流管理系统,通过深入理解和实践,开发者可以构建出高效、灵活的业务流程,提高企业的业务...
jbpm是一个开源的工作流引擎,可以处理复杂的业务流程自动化,而SSH是Java开发中常用的技术栈,提供了MVC架构、依赖注入和对象关系映射等功能。 在进行jbpm与SSH框架的集成时,首先要确保环境的正确搭建。这里以...
jbpm,全称为Java Business Process Management,是一款开源的工作流管理系统,它主要用于业务流程的建模、执行和管理。jbpm数据库数据是jbpm系统运行过程中产生的各种数据,包括流程定义、任务实例、变量、事件等,...
- 获取`JbpmContext`对象,可使用`JbpmConfiguration`的`getCurrentJbpmContext()`或`createJbpmContext()`方法。 ### 4. 使用流程图与API 利用jBPM的API,开发者可以: - 创建和启动流程实例:通过`JbpmContext`...
jbpm4_property 表用于为运行时需要持久化的对象生成 dbid,其记录当前所有对象实例的最大值,每次需要生成 dbid 时,需要先获取该值,然后递增返回。 jbpm4_id_group jbpm4_id_group 表用于存储用户组相关信息,...
【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...
jbpm使用案例,非常不错,大家都来看看吧。
jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...
7. **部署JBPM服务**:将`jbpm-ds.xml`、`jbpm-jbpmContext.xml`等配置文件复制到服务器的配置目录下,这些文件定义了JBPM与数据库的连接。然后,将JBPM的war文件部署到服务器的webapps目录下,例如`Tomcat\webapps\...