搭建JBPM4.4和Struts2.2.1、Spring2.5.6開發環境:
(1):建立JBPM的主配置檔案:jbpm.cfg.xml。該檔案在JBPM下的/install/src/cfg/jbpm/spring.jbpm.cfg.xml。将spring的字首去掉後copy到項目的src目錄下
(2):spring的核心配置檔案applicationContext.xml。該檔案也不需要自己編寫,具體查找目錄:\install\src\cfg\spring\applicationContext.xml。同樣是copy到src目錄下,修改其中的dataSource中的資料庫連接配接選項即可
(3):hibernate核心配置檔案:\install\src\cfg\hibernate\spring。由于我使用的是sqlserver資料庫,而JBPM沒有提供sqlserver的Hibernate配置檔案.可以複制mysql的配置檔案,更改一下hibernate.dialect屬性即可.記住:将該檔案拷貝到src目錄下後要改變一下檔案名:隻需和applicationContext.xml中sessionFactory下configLocation屬性裡配置的一緻即可。
到此為止JBPM和Spring 整合就已經完成。
Spring 的配置檔案裡封裝了processEngine的引用,在以後的類中想要用到ProcessEngine的時候隻需注入即可。
要和資料庫進行操作,資料庫裡必須有JBPM所需要的16張表,JBPM4本身沒有提供建立sqlserver資料表的腳本,但網上有很多網友提供了該腳本,也可以參考我的另外一片部落格。
接下來就是配置struts2和Spring的環境了這裡就不再詳述了。
注:JBPM和tomcat6整合的時候經常報java.lang.LinkageError:異常。解決辦法:
将項目lib目錄下的juel.jar, juel-engine.jar, juel-impl.jar三個包複制到tomcat6的lib目錄下,并且删除項目下的這三個jar包。
附1:JBPM4實作zip流形式釋出流程定義:
ZipInputStream zipin=null;
try {
zipin = new ZipInputStream(new FileInputStream(new File(path)));
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.createDeployment().addResourcesFromZipInputStream(zipin).deploy();
} catch (Exception e) {
ActionContext.getContext().put("error", "釋出失敗");
return INPUT;
}finally{
zipin.close();
}
将定義好的jpdl檔案和同時生成的png圖檔檔案打包為.zip的形式然後就可以釋出。
附2:JBPM最小依賴jar包
jbpm.jar
activation.jar
antlr.jar
commons-collections.jar
commons-logging.jar
dom4j.jar
hibernate-code.jar
junit.jar
log4j.jar
hsqldb.jar
javassist.jar
juel-api.jar
juel-impl.jar
slf4j-api.jar
slf4j-jdk14.jar
mail.jar
jta.jar