jbpm开发中的一些问题

在刚开始接触jbpm时,碰到一些小问题,在这里列出来,方便以后总结。

软件:

数据库:mysql

工作流:jbpm-starters-kit-3.1.2

构建工具:ant


1. 安装好MySQL及客户端工具。

2. 在MySQL中创建数据库jbpm。

3. 使用ant工具生成的数据库建表脚本创建数据库表。将mysql.create.sql导入执行。

              1)将解压后的JBPM路径下jbpm目录改名为jbpm.3否则在执行ant命令时会报jbpm.3目录不存在错误

              2)使用dos窗口进入jbpm-db目录:执行ant mysql.scripts 命令。执行成功后会在 X:/jbpm-starters-kit-3.1.2/jbpm-db/build/mysql/scripts下创建4个文件。(mysql.clean.sql、mysql.create.sql、mysql.drop.create.sql、mysql.drop.sql)

运行后发现有异常:


D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm-db>ant mysql.scripts
Buildfile: build.xml

mysql.scripts:

prepare:

compile.jbpm:
    [mkdir] Created dir: D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm
    [javac] Compiling 337 source files to D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm
    [javac] 注意:某些输入文件使用或覆盖了已过时的 API。
    [javac] 注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
     [copy] Copying 138 files to D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm

compile.identity:
    [mkdir] Created dir: D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.identity
    [javac] Compiling 20 source files to D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.identity
    [javac] 注意:某些输入文件使用或覆盖了已过时的 API。
    [javac] 注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
     [copy] Copying 9 files to D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.identity

compile.jbpm.test:
    [mkdir] Created dir: D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm.test
    [javac] Compiling 255 source files to D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm.test
    [javac] D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\src\java.jbpm.test\org\jbpm\persistence\db\MockConnection.java:13: org.jbpm.persistence.db.MockConnection 不是抽象的,并且未覆盖 java.sql.Connection 中的抽象方法 createStruct(java.lang.String,java.lang.Object[])
    [javac] public class MockConnection implements Connection {
    [javac]        ^
    [javac] 注意:某些输入文件使用或覆盖了已过时的 API。


出现此异常是因为org.jbpm.persistence.db.MockConnection这个类实现了java.sql.Connection接口。要解决此问题,可以通过java的IDE工具修改org.jbpm.persistence.db.MockConnection这个类(只要空实现java.sql.Connection类中的静态接口就可以)。


运行后,此问题解决。但是出现下面异常:

compile.jbpm.test:
    [javac] Compiling 55 source files to D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm.test
    [javac] D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\src\java.jbpm.test\org\jbpm\persistence\db\MockConnection.java:180: -source 1.4 中不支持注释
    [javac] (请使用 -source 5 或更高版本以启用注释)
    [javac]     @Override
    [javac]      ^
    [javac] D:\software\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\jbpm.3\src\java.jbpm.test\org\jbpm\persistence\db\MockConnection.java:181: -source 1.4 中不支持泛型
    [javac] (请使用 -source 5 或更高版本以启用泛型)
    [javac]     public <T> T unwrap(Class<T> paramClass) throws SQLException {
    [javac]            ^
    [javac] 2 错误

    这个是用由于jbpm-starters-kit-3.1.2\jbpm.3目录下的build.xml编译版本默认使用的 -1.4的。解决此问题,找到jbpm-starters-kit-3.1.2\jbpm.3目录下的build.xml文件,打开后将文件中的所有的1.4修改成1.6版本的。

ps:检查自己机器上默认使用的jdk版本,在DOC窗口,运行 java -version 就能出现jdk版本号。由于我机器上使用的是

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

所以我上面将build.xml文件中所有的1.4都改成了1.6.

修改完后,运行 ant mysql.scripts 命令,BUILD SUCCESSFUL



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章