近期在學習activiti,打算基於現有的框架,比如activiti-explorer或者咖啡兔的示例工程 kft-activiti-demo,在此基礎上添加自己的業務流程,看看是否可以走通,以及這個過程要走通,需要編寫哪些方面的代碼,然后選定使用kft-activiti-demo來作為試點,由於公司的網絡無法連接maven庫,所以選擇了kft-activiti-demo-no-maven版本來測試,由於對java技術棧不熟悉,所以搭建環境的過程中引出了各種問題,下面將詳細記錄搭建的步驟,以避免后來人繼續掉坑里。
一、開發環境
windows 10 64位
jdk 1.8
Eclipse Java EE IDE for Web Developers. 4.5.0
tomcat 7.0.64
二、相關資源
2)從
https://github.com/henryyan/kft-activiti-demo/zipball/no-maven 下載了henryyan-kft-activiti-demo-1.10.2-no-maven-5-g9340b4a.zip
三、解決各種編譯錯誤
1)將henryyan-kft-activiti-demo-1.10.2-no-maven-5-g9340b4a.zip 解壓到henryyan-kft-activiti-demo-9340b4a_nomaven;
2)使用eclipse打開該工程


然后點擊finish即可,在eclipse中顯示如下:

3)編譯該工程,通過如下按鈕進行;

4)編譯之后會提示如下錯誤:

下面逐個解決;
a)javax.servlet.jsp.JspException cannot be resolved to a type、javax.servlet.jsp.PageContext cannot be resolved to a type
解決這個異常需要加入:jsp-api.jar在tomcat安裝目錄的libs中有、同樣如果servlet異常需要加入servlet-api.jar tomcat也有的,在當前工程中,主要是由於工程中配置的是要求tomcat 6.0,但是在當前eclipse中配置的是tomcat 7.0.64版本,所以需要按照下圖所示,在server library中選擇當前eclipse中配置的web服務器 tomcat 7.0,確定之后就會自動引入該tomcat的lib目錄下的jar包
。

引入之后如下:

然后再次重新編譯,應該只剩下如下兩個錯誤:

b)cvc-complex-type.2.4.a: Invalid content was found starting with element 'display-name'.
對於該問題,只需要雙擊打開web.xml文件,然后把有問題的這行刪除即可,初步懷疑是在最新版本的web.xml中,已經取消了display-name配置項。

c)Target runtime Tomcat v6.0.32-eclipse is not defined.
該問題在如下路徑(
http://blog.csdn.net/xw13106209/article/details/5910358
)
中找到了解決方法,說到底就是要修改工程目錄下的.settings文件夾里org.eclipse.wst.common.project.facet.core.xml文件。他當前的內容是:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Tomcat v6.0.32-eclipse"/>
<fixed facet="wst.jsdt.web"/>
<fixed facet="jst.web"/>
<fixed facet="java"/>
<installed facet="java" version="1.6"/>
<installed facet="jst.web" version="2.5"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
要把他改為:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v7.0"/>
<fixed facet="java"/>
<fixed facet="wst.jsdt.web"/>
<fixed facet="jst.web"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
在工程上右鍵刷新一下。

然后clean,
重新編譯之后,應該還有如下一個錯誤:

d)Java compiler level does not match the version of the installed Java project facet.
在工程屬性中修改當前工程的java 編譯器,改為當前安裝的版本即可,在本例中我安裝的是1.8,那么選擇1.8再重新編譯,應該就沒有錯誤了。

四、部署
在項目上右鍵 run as ->run on server,彈出如下對話框,選擇一個tomcat服務器,點擊finish即可。

啟動之后,會顯示如下頁面:

如果是第一次使用,在輸入用戶名和密碼之后,會提示如下錯誤:

這是因為h2數據庫沒有初始化,需要按照如下步驟做初始化。
1)從
http://repo2.maven.org/maven2/com/h2database/h2/1.3.167/h2-1.3.167.jar 下載h2客戶端jar 包;
2)把該jar包拷貝到某路徑,
3)確保剛剛啟動的eclipse已經退出運行狀態;
4)然后在控制台中運行 java -jar h2-1.3.167.jar,然后會在瀏覽器中彈出如下界面:

4)在jdbc url中輸入:jdbc:h2:file:~/kft-activiti-demo;AUTO_SERVER=TRUE
然后點擊connect,顯示界面如下:

然后依次執行源碼目錄下的以下sql腳本,將腳本內容拷貝到上述界面的文本框中,點擊Run執行。
+resources\sql\h2\create
-activiti.h2.create.engine.sql
-activiti.h2.create.history.sql
-activiti.h2.create.identity.sql
+resources\sql\h2
-data.sql
執行好完之后,應該包括如下這些表:

然后退出控制台,重新再eclipse 中 run as -> run on server,這次再輸入用戶名、密碼,就可以正常登陸了。
登錄之后界面如下圖所示:

好了,環境搭建完成,可以開始學習源碼了。