首页 > 代码库 > jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.

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

开始钻研工作流的东西,第一颗钉子,笔记之:

错误信息:

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

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

这是网上的兄弟的方法,自己试了试,还是

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