搭建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