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

jbpm4.3不能查看流程图

    博客分类:
  • jbpm
阅读更多

错误代码为:

org.jbpm.api.JbpmException: couldn't extract bytes out of blob
	at org.jbpm.pvm.internal.lob.BlobStrategyBlob.get(BlobStrategyBlob.java:27)
	at org.jbpm.pvm.internal.lob.Lob.extractBytes(Lob.java:102)
	at org.jbpm.pvm.internal.repository.DeploymentImpl.getBytes(DeploymentImpl.java:182)
	at org.jbpm.pvm.internal.repository.RepositorySessionImpl.getBytes(RepositorySessionImpl.java:143)
	at org.jbpm.pvm.internal.cmd.GetResourceAsStreamCmd.execute(GetResourceAsStreamCmd.java:45)
	at org.jbpm.pvm.internal.cmd.GetResourceAsStreamCmd.execute(GetResourceAsStreamCmd.java:31)
	at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
	at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:55)
	at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
	at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
	at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
	at org.jbpm.pvm.internal.repository.RepositoryServiceImpl.getResourceAsStream(RepositoryServiceImpl.java:81)
	at com.tepper.wfe.action.DrawGraphAction.drawActive(DrawGraphAction.java:90)
	at com.tepper.wfe.action.DrawGraphAction.execute(DrawGraphAction.java:50)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.tepper.common.SessionFilter.doFilter(SessionFilter.java:60)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)

 

 

debug后找到这里:

public byte[] get(Lob lob) {
    if (lob.cachedBytes!=null) {
      return lob.cachedBytes;
    }
    
    java.sql.Blob sqlBlob = lob.blob;
    if (sqlBlob!=null) {
      try {
        return sqlBlob.getBytes(1, (int) sqlBlob.length());
      } catch (SQLException e) {
        throw new JbpmException("couldn't extract bytes out of blob", e);
      }
    } 
    return null;
  }

 

这里调用的是hibernate的代码,然后使用LOB定位器,如果是新的部署,是会返回byte[]!

 

从现有的部署中我们来开启一个流程,他的调用是这样的:

log.trace("loading deployment "+deploymentId+" from db");
 DeploymentImpl deployment = (DeploymentImpl) session.load(DeploymentImpl.class, Long.parseLong(deploymentId));
 deployerManager.deploy(deployment);
 object = repositoryCache.get(deploymentId, objectName);
 if (object==null) {
 throw new JbpmException("deployment "+deploymentId+" doesn't contain object "+objectName);
 }

 

这段代码是从数据库加载,而它不会加载BLOB数据 和用LOB定位器代替;然后, deployerManager.deploy(deployment); LOB定位器将调用来获取数据, 由于ResultSet已经关闭,异常发生!

解决方法是:

把<prop key="hibernate.connection.release_mode">auto</prop>此属性去掉!

hibernate.connection.release_mode的用途是:指定Hibernate在何时释放JDBC连接. 默认情况下,直到Session被显式关闭或被断开连接时,才会释放JDBC连接. 对于应用程序服务器的JTA数据源, 你应当使用after_statement, 这样在每次JDBC调用后,都会主动的释放连接. 对于非JTA的连接, 使用after_transaction在每个事务结束时释放连接是合理的. auto将为JTA和CMT事务策略选择after_statement, 为JDBC事务策略选择after_transaction. 取值 on_close | after_transaction | after_statement | auto

 

分享到:
评论
2 楼 windywindy 2012-10-08  
fatter 写道
lz用的是什么数据库?我用的db2上报这样的错误,前提是我没有添加
<prop key="hibernate.connection.release_mode">auto</prop>
这个属性,但是还是报这样的错误

用的是oracle
1 楼 fatter 2012-08-06  
lz用的是什么数据库?我用的db2上报这样的错误,前提是我没有添加
<prop key="hibernate.connection.release_mode">auto</prop>
这个属性,但是还是报这样的错误

相关推荐

    jbpm4.3工作流程管理例子

    3. 任务管理:jbpm4.3内置了任务服务,用于管理任务的分配、启动、完成和监控,确保流程中的每个步骤都能按预期执行。 4. 规则集成:与JBoss Drools融合,允许在流程中嵌入规则引擎,实现规则驱动的决策过程。 5. ...

    开源工具 jbpm4.3

    用户可以通过拖拽和连接各个活动节点来构建流程图,这使得非技术人员也能参与到流程设计中,降低了流程设计的学习曲线。同时,这种可视化的设计方式使得流程更易于理解和修改。 2. **工作流引擎**: jbpm4.3内置了...

    JBPM4.3培训学习视频, 包含了JBPM4.3的eclipse插件

    【JBPM4.3培训学习视频】是一套针对初学者设计的教程,旨在...通过这套全面的教程,学习者不仅能掌握JBPM4.3的基本操作,还能了解工作流管理系统在实际业务场景中的应用,为后续的进阶学习和实际项目开发打下坚实基础。

    jbpm4.3视频教程+代码

    通过这个教程,学习者不仅能掌握Jbpm4.3的基本使用,还能理解业务流程管理系统的原理,具备独立开发和维护流程项目的能力。同时,视频和代码的结合使得学习更加直观和高效,有助于理论知识与实践经验的融合。

    jBPM4.3.rar_JBPM4.3

    jbPM 4.3 使用Drools Flow作为其流程建模工具,提供图形化的流程编辑器,支持拖放操作,可创建复杂的业务流程图。流程图包含各种元素,如任务(Tasks)、决策(Decisions)、网关(Gateways)和事件(Events)。 **...

    jBPM4.3用户指南

    **jBPM4.3用户指南** jBPM(Java Business Process ...总的来说,jBPM4.3用户指南是理解并使用jBPM进行业务流程自动化的重要资源,涵盖了从基础概念到高级特性的全面介绍,为开发者提供了实践指南和问题解决策略。

    jbpm jbpm4 jbpm4.3 工作流

    5. **事件处理**:jbpm4.3引入了事件处理机制,可以监听并响应流程中的特定事件,如任务完成、流程结束等,增强了流程的响应能力。 6. **服务调用**:jbpm4.3支持通过服务任务调用外部系统,如Web服务、EJB等,实现...

    JBPM4.3-例子(简单使用)

    用户可以通过拖放操作来构建流程图,包括任务、事件、决策节点等。此外,它支持基于JPA的持久化,这意味着流程实例和相关数据可以方便地存储在关系数据库中,提高了系统的可扩展性和可靠性。 在"leave_web"项目中,...

    jbpm4.3、ssh环境搭建

    - 注意,jBPM4.3不支持ehcache,需使用其自带的Hibernate包。 3. **主要配置文件**: - **jbpm.hibernate.cfg.xml**:这是jBPM与Hibernate集成的核心配置文件。配置了多个映射文件,如`jbpm.repository.hbm.xml`...

    jbpm4.3 - demo

    7. **流程模拟和调试**:jbpm4.3提供了流程模拟功能,允许开发者在不实际执行流程的情况下预览流程行为。同时,调试工具帮助开发者找出流程执行过程中的问题。 8. **表单管理**:jbpm4.3可以通过MVEL或EL表达式定义...

    jbpm4.3所需jar包

    **jbpm4.3所需jar包** JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于业务流程的建模、执行和管理。在JBPM 4.3版本中,为了实现完整功能,需要一系列的jar包来支持其运行环境。...

    jbpm4.3 中文文档

    用户可以通过图形化的建模工具创建和编辑流程图,使得非技术人员也能理解流程。 2. **工作流引擎**:jbpm4.3包含一个强大的工作流引擎,它负责执行和管理流程实例。引擎能够解析流程模型,并根据业务逻辑控制流程的...

    jbpm4.3 请假流程实例示例

    jbpm4.3提供了图形化的流程设计工具,使得非技术人员也能理解和参与到流程的设计中来。 在jbpm中,流程定义是通过JPDL(jBPM Process Definition Language)来实现的。"holiday.jpdl.xml"文件就是一个典型的JPDL...

    JBPM4.3中文 用户手册

    - **流程图**:通过可视化方式展现流程步骤及其之间的关系。 3. **API使用**: - **Java API**:提供了丰富的类库,允许开发者在Java应用程序中直接操作JBPM引擎。 - **REST API**:支持通过HTTP请求的方式访问...

    jbpm4.3中文开发指南

    通过图形化工具,开发者可以创建直观的流程图,包括任务、事件、网关等元素,使得非技术人员也能理解流程逻辑。 2. **流程执行**:JBPM4.3包含一个强大的执行引擎,能够解析并执行建模的流程。它支持动态流程变更,...

    JBPM4.3完整示例

    通过深入研究"JBPM4.3完整示例",开发者不仅可以掌握JBPM4.3的基础知识,还能获得实践经验,了解如何在实际项目中部署和使用工作流管理系统。对于想要了解工作流管理、提升企业业务自动化水平的人员来说,这是一个...

    jbpm4.3工作流

    - **流程建模**:jbpm4.3支持BPMN 2.0标准,提供了一个直观的流程建模界面,用户可以通过拖拽和连接元素来创建流程图。 - **流程执行**:jbpm4.3能够执行建模的流程,并根据流程规则自动分配任务。 - **任务管理**:...

    jbpm4.3 开发指南

    jbpm4.3支持使用Eclipse BPMN Editor创建流程图。BPMN符号包括活动(Activity)、事件(Event)、网关(Gateway)和数据对象(Data Object),通过这些元素可以构建出复杂的业务流程。 ### 三、任务管理 jbpm4.3...

    jbpm4.3英文API

    jbpm4.3是JBoss Business Process Management (BPM) Suite的一个版本,它是一个开源的业务流程管理系统,用于设计、部署和执行业务流程。API(Application Programming Interface)是jbpm4.3的核心部分,它提供了与...

    SSH 与jbpm4.3 整合的资料以及ssh的jar包

    开发者可以通过jbpm4.3提供的工具或API创建流程图,并将其编译为可执行的流程定义。 5. **流程实例的控制**:在SSH框架中,可以创建服务类或DAO来调用jbpm4.3的API,如ProcessEngine、RuntimeService、TaskService...

Global site tag (gtag.js) - Google Analytics