`

jbpm4常见 错误及解决方法

阅读更多

1. 结束实例错误

Configuration con=new Configuration();
ProcessEngine pe=con.buildProcessEngine();
pe.getRepositoryService().createDeployment()
        .addResourceFromClasspath("org/jbpm/examples/end/state/process.jpdl.xml")
        .deploy();
ExecutionService  executionService=pe.getExecutionService();
ProcessInstance processInstance = executionService.startProcessInstanceByKey("gonggu");

    String pid = processInstance.getId();
    processInstance = executionService.signalExecutionById(pid,"400");
    System.out.println(processInstance.isEnded());
executionService.signalExecutionById(pid,"400"),

错误如下:

结束流程实例时候错误:

org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#7]

。。。。。

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)


Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`jbpm4`.`jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`))
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)

....

解决办法:

将hibernate的配置中数据库方言修改为 org.hibernate.dialect.MySQLInnoDBDialect。

 

但是针对于jbpm4.3版本中解决上述问题:使用MySQLInnoDBDialect 方言,在初始化jbpm4的支持数据库时候会出现以下错误:

jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table.   Run the create.jbpm.schema target first in the install tool.

分析:

JBPM初始化建立表格时create语句错误,如下:

create table JBPM4_DEPLOYMENT (

  DBID_ bigint not null ,

  NAME_ longtext,

  TIMESTAMP_ bigint,

  STATE_ varchar(255),

  primary key (DBID_)

) type=InnoDB

关键在于这个创建表格的语句在Navicat Lite中执行该条SQL语句也同样报错,type=InnoDB不符合语法,我的mysql版本是5.5的,

之后发现,MySQL 4.0开始不建议使用type=InnoDB,建议使用Engine=InnoDB,而MySQL 5.5只能用Engine=InnoDB

解决方案:

      首先普及一下jbpm4.4创建默认表格的方法是有两种方法的,第一种是通过ant命令在dos窗口建立(用的是jbpm-4.4/install/src/db/create/jbpm.mysql.create.sql的sql语句创建的); 另一种是通过代码,运行java代码,自动创建的(这种则是在你配好java项目之后利用项目里的默认配置来创建默认表格的)。

关键是两种方法所用到的文件是不同的,认清这点这个很重要。

 好了接下来咱说解决方案:

方案1.修改jbpm-4.4/install/src/db/create/jbpm.mysql.create.sql中的脚本:

  将其中的type=InnoDB改为Engine=InnoDB

这种方法适用于用ant命令创建表格的方式,这也是为什么我之前用这种方法之后在java代码中创建表格不成功的原因了

方案2.安装MySQL Server 5.1

(第二种方法比较彻底,读者推荐)

 

2.集成到javaEE的页面时候错误:

java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

不难发现是由于解析jsp文件的类有两个,java不知道使用哪个解析jsp文件造成的。

 

解决方法:1. 删除你项目中WEB-INF/lib目录下的三个jar包(juel.jar, juel-engine.jar, juel-impl.jar )。

               2. 将三个jar包(juel.jar, juel-engine.jar, juel-impl.jar )拷贝到${tomcate 1.6}/lib目录下。

分享到:
评论

相关推荐

    jbpm4.3常见问题解决

    下面,我们将深入探讨jBPM 4.3的一些常见问题及解决方案。 首先,我们来看"jBPM-4.x常见问题解决方案FAQ.docx",这个文档很可能包含了用户在使用jBPM 4.3时遇到的各种问题和相应的解决办法。常见问题可能包括流程...

    JBPM4运行时错误异常总结

    下面将详细讨论在JBPM4中遇到的一些常见异常及其解决方法。 1. `org.jbpm.api.JbpmException: database was not clean after test`: 这个异常通常出现在单元测试环境中,原因是测试过程中流程未完成,但尝试删除...

    jbpm4.3问题解决

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

    JBPM4.4完整可用审批流程

    这些报错指南可能是开发者根据经验总结出的常见问题解决方案,或者是官方文档中的错误处理部分,对于快速定位和解决问题非常有帮助。 在jbpm4_maven目录下,我们可以期待找到以下内容: 1. **源代码**:包括业务...

    jbpm4.rar_jbpm_jbpm designer_jbpm4

    jBPM 4是该系统的第四个主要版本,它引入了诸多新特性和改进,旨在提供更高效、灵活且可扩展的业务流程管理解决方案。 jBPM 4的一大亮点是其图形化设计器(jBPM Designer),这是一个强大的工具,允许开发者通过...

    jbpm4 开发手册

    7. **jpbm学习笔记**:这些笔记可能包含开发者在实践过程中的经验总结,涵盖了常见问题、解决方法和实用技巧,对于快速掌握jbpm4的使用非常有帮助。 8. **jpbm最佳实践**:这份文档汇集了开发者在实际项目中提炼出...

    JBPM4整理学习资料

    1. **JBoss BPM系统介绍**:JBPM4是JBoss组织推出的一款开源BPM解决方案,它提供了业务流程的建模、执行、监控和管理等功能,帮助企业实现业务流程自动化。 2. **API文档**:API(Application Programming ...

    JBPM4学习笔记(全)

    9. **问题与解决方案**:笔记中可能涵盖了在学习和实践过程中常见的问题及其解决方法,帮助读者避免重复踩坑,快速解决问题。 最后,笔记作者还提供了联系方式,这意味着你可以直接通过QQ或QQ群获得进一步的帮助和...

    jbpm4.40.rar_40_jbpm4

    9. **最佳实践**:总结了一些在开发和部署JBPM项目时的注意事项和经验分享,以帮助用户避免常见错误。 通过这个指南,学习者可以在短时间内了解并掌握JBPM4.4的关键功能和用法,从而在实际工作中高效地利用这个强大...

    jbpm4与SSH整合

    【jbpm4与SSH整合】是一项在Java企业级开发中常见的技术融合,涉及到Spring(简称SSH中的S)、Struts(S)和Hibernate(H)这三个主流的开源框架,以及jbpm(Java Business Process Management,一个流程管理框架)...

    jbpm4.4中文开发指南

    **jbpm4.4中文开发指南** ...通过阅读《jbpm4.4开发指南.doc》,读者可以系统了解jbpm的工作原理、配置方法、使用技巧,以及常见问题的解决方案,从而更好地在实际项目中运用jbpm4.4来实现高效、灵活的业务流程管理。

    jbpm4.3 中文文档

    中文文档的详细内容将涵盖以上各个部分,包括安装指南、快速入门、API参考、案例研究、常见问题解答等,帮助读者逐步掌握jbpm4.3的使用方法和最佳实践。通过深入学习,开发者不仅能熟练操作jbpm4.3,还能理解业务...

    jbpm连接mysql数据库的实例以及问题解决方案

    以下是一些常见问题的解决方案: 1. **权限问题**:如果遇到权限错误,检查MySQL用户是否有创建表和读写数据的权限。 2. **时区问题**:如果你看到与时区相关的错误,尝试在URL中添加`serverTimezone=UTC`参数,...

    jbpm3.2 .jar

    如果你遇到了使用jbpm3.2时的错误或性能问题,这个更新包可能包含了解决方案。 jbpm框架的核心特性包括: 1. **流程建模**:使用JPDL进行流程建模,支持流程图的可视化编辑。 2. **流程实例管理**:跟踪和管理每个...

    JBPM开发实战教程

    - **常见错误**: 如连接数据库失败、流程定义错误等。 - **排查方法**: 通过日志定位问题原因。 ##### 6.2 性能瓶颈分析 - **性能测试**: 使用工具如JMeter进行压力测试。 - **调优策略**: 根据测试结果调整系统...

    jBPM Developer Guide

    此外,jBPM官方还提供了一些常见问题解答(FAQ)和示例代码来帮助开发者快速解决问题。 #### 七、版权与出版信息 - **版权**: 本书的版权归Packt Publishing所有,未经许可不得复制或传播。 - **出版信息**: 本书...

    spring+hibernate+jbpm整合

    #### 六、常见问题及解决策略 1. **整合失败**:通常是因为配置文件中的路径不正确或者某些属性设置错误。需要仔细检查配置文件中的每一项设置,并确保与实际环境相匹配。 2. **数据库兼容性问题**:由于不同数据库...

Global site tag (gtag.js) - Google Analytics