在剛開始接觸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