天天看點

JBPM4整合Spring環境搭建

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

上一篇: K8S之nodeName