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



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