`
Johnny_GZ
  • 浏览: 179095 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JBPM调用CompleteTask异常以及在JBPM中使用Hibernate Session的方法

阅读更多
1、JBPM调用CompleteTask异常:
void completeTask(java.lang.String taskId)
Deletes this task, marks the related history task as completed.
void completeTask(java.lang.String taskId, java.util.Map<java.lang.String,?> variables)
Deletes this task and marks the related history task as completed.
void completeTask(java.lang.String taskId, java.lang.String outcome)
Deletes this task, marks the related history task as completed with the specified outcome.
void completeTask(java.lang.String taskId, java.lang.String outcome, java.util.Map<java.lang.String,?> variables)
Deletes this task, marks the related history task as completed with the specified outcome.
JBPM中completeTask有以上四种重载完成节点任务的方法,初学时调用该方法出错:No unnamed transitions were found for the task “**”;后来总结发现,当task中只有一个transition,而且没有name属性,则可以调用completeTask(java.lang.String taskId)和completeTask(java.lang.String taskId, java.util.Map<java.lang.String,?> variables)这两个方法,当有多个transition或者transition有name属性的时候调用完成任务的方法时则需要指定转向,即java.lang.String outcome参数,就是调用后面两个重载的方法,否则就会报上面这个异常;

2、JBPM中使用Hibernate Session的方法:
学习JBPM时,想将数据保存到自己的表中,不过不想使用jdbc,使用hibernate又不想独立再重新用,所以就考虑想用JBPM中的hibernate session,看到源码中sevice中都有session,不过没找到何处赋值的,后面还得多研究下,不过看到有用EnvironmentImpl.getCurrent().get(XXX.class)的方法,而且有个DbSession的类中有hibernate的session变量,所以尝试EnvironmentImpl.getCurrent().get(DbSession.class)获取,不过报错,EnvironmentImpl.getCurrent()是空值,之后发现下面的方法:

EnvironmentImpl environment = ((EnvironmentFactory) processEngine).openEnvironment(); //获取JBPM的环境
DbSession session = environment.get(DbSession.class);

此处注意需要自己处理事务,这个地方被困扰了好久,显示操作但是没有数据,需要手动的去控制事务。

有了这个environment之后同样可以用这个方法也可以获得其他的一些类的实例,这样可以在在JBPM中可以通过environment获得各种服务和接口。
如:   
IdentitySession identitySession = environment.get(IdentitySession.class);
1
1
分享到:
评论

相关推荐

    spring+struts1+hibernate+jbpm实例

    标题中的"spring+struts1+hibernate+jbpm实例"揭示了这是一个基于Java技术栈的Web应用程序开发实例,其中涉及四大核心技术:Spring、Struts1、Hibernate和JBPM。接下来,我们将深入探讨这些技术及其在实际项目中的...

    Jbpm工作流引擎使用例子

    开发者可以在Java代码中调用Jbpm的SessionFactory和Session接口,进行流程的启动、控制和查询。 - 使用Java的ServiceLocator或EntityManager进行持久化操作,如数据库交互。 6. **Hibernate集成** - Jbpm可以与...

    jbpm4整合struts2+spring2.5+hibernate3.3

    3. 创建Struts2的Action类,调用Spring管理的服务层方法,处理业务逻辑。 4. 集成Hibernate,配置数据源、实体类和映射文件,实现数据的持久化。 5. 使用jbpm4的API来启动、查询和控制流程实例。 6. 实现权限控制和...

    SSH+JBPM4.3的整合 JBPM4.3

    1. **配置Spring**:在Spring配置文件中,需要添加对JBPM的依赖,包括数据源、session工厂、流程引擎等。Spring的事务管理器可以协调各个服务间的事务一致性。 2. **集成Hibernate**:由于JBPM4.3本身是基于...

    ssh2与jbpm集成实例源码

    Struts2可以作为前端控制器,处理用户的请求,并调用Spring中的Service层方法来执行Jbpm流程。Hibernate则用于处理与Jbpm相关的数据库操作,例如存储流程定义、实例等信息。 具体到"ssh2Jbpm"这个压缩包文件,它...

    jbpm与ssh的集成

    2. **配置Struts**:在Struts的配置文件中定义Action,这些Action通常会调用jbpm的相关服务,如启动流程、查询任务等。 3. **整合Hibernate**:jbpm4.3版本可以与Hibernate结合,通过HibernateSession来管理数据库...

    jBPM4.4+ssh 整合配置及完整实例

    3. **启动流程**:通过Spring的业务接口,调用jBPM的API启动流程实例,分配任务给相应用户。 4. **任务处理**:用户通过Struts的Action完成任务,更新流程状态。 5. **流程监控**:使用jBPM提供的Web管理界面或...

    jbpm4.3+struts2+spring3+hibernate3整合(一)

    在整合过程中,首先会介绍jbpm4.3的配置和使用,包括流程定义文件(BPMN)的创建、工作流引擎的初始化以及任务的管理和调度。jbpm允许开发者定义复杂的业务流程,并通过API进行控制,如启动流程实例、完成任务节点等...

    ssh-jbpm整合

    在整合JBPM时,Spring可以用来配置和管理JBPM的数据源、工作流session工厂以及事务管理。通过Spring的bean配置,可以实现JBPM服务的自动装配,简化代码。 2. **Struts2整合**: Struts2作为前端控制器,处理用户的...

    工作流 JBPM SSH 示例

    3. **流程实例启动**:通过SSH框架中的服务层,调用JBPM API启动流程实例,这将触发流程的第一个任务。 4. **任务处理**:流程中的任务会出现在用户的工作列表中,通过Struts处理用户的任务完成请求,更新流程状态。...

    jBPM4与Spring整合的2种方式

    2. **配置事务处理**:修改`jbpm.tx.spring.cfg.xml`文件,将`standard-transaction-interceptor`改为`spring-transaction-interceptor`,并将`transaction`和`hibernate-session`设置为`current="true"`。...

    jbpm开发指南

    在IT领域,业务流程管理(Business Process Management, BPM)是一个关键的实践领域,而jbpm则是Java社区中一个流行的开源BPM框架。本开发指南将深入探讨jbpm的核心概念、功能以及如何有效地利用它来构建和管理业务...

    Struts2_0+spring2_0+hibernate3_1.zip_site:www.pudn.com_spring_ss

    在SSH集成中,Spring主要负责管理和协调其他两个框架,例如配置和实例化Struts2的动作类,以及管理Hibernate的Session工厂。 **Hibernate** 是一款强大的对象关系映射(ORM,Object-Relational Mapping)框架,它...

    jboss seam 中文文档

    - **MVC 推风格**:介绍了在 RESTful 应用中使用“推”风格的 MVC 设计模式的具体实现方法。 #### 三、使用 Seam-gen 快速起步 - **准备工作**:在开始使用 Seam-gen 之前,需要进行一系列的基础配置,包括环境...

    自整理Java关于基础和框架的面试题

    - **finally**:在try-catch-finally语句块中使用,确保无论是否发生异常都会执行的代码块。 - **finalize**:对象被垃圾回收前调用的方法,已过时。 ##### Io流的层次结构 - 输入流:InputStream、Reader。 - 输出...

    Seam_Reference_Guide

    本书通过多个示例来阐述Seam框架的使用方法,涵盖了从简单注册表单到复杂的酒店预订系统,以及集成jBPM的工作流应用。每个示例都详细解释了代码结构和工作原理,帮助读者理解如何在实际项目中应用Seam框架。 - **...

    Seam Framework 2.0 Reference中文版

    - **在 RESTful 应用程序中使用“推”风格("push"-style)的 MVC**:介绍了如何在 RESTful 应用程序中使用“推”风格的 MVC。 ##### 1.11 在 JBoss 中用 JSF1.2RI 运行 Seam 的范例 这部分介绍了如何在 JBoss 中...

    SEAM 中文开发指南

    - **拦截**:对组件的方法调用进行拦截处理。 - **组件名字**:用于标识组件。 - **定义组件范围**:明确组件的作用域。 以上是 SEAM 中文开发指南的主要知识点概述,从基础入门到高级功能均有涉及,旨在帮助...

    seam2.0 中文文档

    - 在方法调用前后插入额外的行为,如日志记录、安全性检查等。 - **组件名字**: - 组件的唯一标识符,用于在组件之间建立关联。 Seam 2.0中文文档覆盖了从基础入门到高级应用的各个方面,为开发者提供了全面的...

Global site tag (gtag.js) - Google Analytics