在刚开始接触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