`
sliver08
  • 浏览: 9834 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JBPM的JBPMContext对象延迟加载的问题

阅读更多
以下是我的一个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采购申请系统——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采购申请系统——06_JBPM版本控制及Token对象.7z ...

    JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z

    JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z JBPM采购申请系统——03_JBPM配置文件与jbpmConfiguration对象.7z JBPM采购申请...

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    JBPM3.2开发基本流程

    * JbpmContext:jbpmcontext对hibernate session提供了封装,提供了对JBPM相关对象的持久化功能 * ProcessDefinition:流程定义 * ProcessInstance:流程实例 * TaskInstance:任务实例 2. JBPM3开发步骤: * ...

    jbpm4.3问题解决

    本篇主要针对jbpm4.3使用过程中遇到的问题及其解决方法进行详细阐述。 首先,我们来看"jbpm4_3表结构和表字段说明 - gamestart104的专栏 - 博客频道 - CSDN_NET.htm"这个文件,这通常包含了jbpm4.3在数据库中使用的...

    jbpm3.2开发总结.pdf

    JbpmConfiguration类用于获取jbpm配置,例如通过getInstance方法加载jbpm.cfg.xml配置文件。JbpmContext类提供了一系列方法来管理流程定义的部署、获取任务列表、加载任务实例、创建新流程实例、获取会话等。 流程...

    jbpm4.4 email没有验证bug解决

    原代的jbpm4.4 没有用户身份验证 而公司邮箱新浪邮箱等等 都必须要省份验证功能!

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jbpm简介\jbpm简介

    ### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process Management, BPM)工作流引擎。它支持多种可执行流程语言,并且可以在任何JavaEE应用...

    jbpm4.3常见问题解决

    首先,我们来看"jBPM-4.x常见问题解决方案FAQ.docx",这个文档很可能包含了用户在使用jBPM 4.3时遇到的各种问题和相应的解决办法。常见问题可能包括流程部署失败、任务无法执行、数据持久化问题、工作流引擎性能优化...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    你可以通过阅读这个文档,深入了解jbPM 3.2的使用方法,解决在实际项目中遇到的问题。 总的来说,jbPM 3.2是一个强大的工作流管理系统,通过深入理解和实践,开发者可以构建出高效、灵活的业务流程,提高企业的业务...

    jbpm+ssh整合

    jbpm是一个开源的工作流引擎,可以处理复杂的业务流程自动化,而SSH是Java开发中常用的技术栈,提供了MVC架构、依赖注入和对象关系映射等功能。 在进行jbpm与SSH框架的集成时,首先要确保环境的正确搭建。这里以...

    jbpm数据库数据,导入即可使用

    jbpm,全称为Java Business Process Management,是一款开源的工作流管理系统,它主要用于业务流程的建模、执行和管理。jbpm数据库数据是jbpm系统运行过程中产生的各种数据,包括流程定义、任务实例、变量、事件等,...

    jBPM2-流程图与JBPM API.ppt

    - 获取`JbpmContext`对象,可使用`JbpmConfiguration`的`getCurrentJbpmContext()`或`createJbpmContext()`方法。 ### 4. 使用流程图与API 利用jBPM的API,开发者可以: - 创建和启动流程实例:通过`JbpmContext`...

    jbpm数据库表介绍

    jbpm4_property 表用于为运行时需要持久化的对象生成 dbid,其记录当前所有对象实例的最大值,每次需要生成 dbid 时,需要先获取该值,然后递增返回。 jbpm4_id_group jbpm4_id_group 表用于存储用户组相关信息,...

    JBPM web(SSH+JBPM) 例子

    【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...

    jbpm 案例 jbpm jbpm

    jbpm使用案例,非常不错,大家都来看看吧。

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...

    JBPM3.3.3搭建环境

    7. **部署JBPM服务**:将`jbpm-ds.xml`、`jbpm-jbpmContext.xml`等配置文件复制到服务器的配置目录下,这些文件定义了JBPM与数据库的连接。然后,将JBPM的war文件部署到服务器的webapps目录下,例如`Tomcat\webapps\...

Global site tag (gtag.js) - Google Analytics