ssh2 整合jbpm

      這個禮拜一直在研究jbpm4.4,沒事寫寫東西希望能對看帖的人一些幫助。。。

      好了廢話不多說了 下面就跟我一起把jbpm整合到ssh2框架中吧!!!

 

     

  整合前,很有必要先對JBPM有個感性的認識。JBPM在管理流程時,是需要數據庫表的支持的,因爲底層的邏輯有那麼複雜。默認下載下來的配置,使用的是內存數據庫。實際應用中,我們就需要連接到我們的數據庫裏來。所以要事先建好相關的表,相應的sql文件在/jbpm-4.4/install/src/db下,當然,你也可以使用hibernatehibernate.hbm2ddl.auto自動建表,本人建議自己用建表語句。

     

  研究過JBPM的人都知道,JBPM在操作流程時,一切都是基於ProcessEngine對象,所以整合的思路很簡單,只要我們能讓Spring創建出ProcessEngine,整合就算是邁出一大步,我們先在spring配置文件(applicationContext.xml)里加入如下代碼:

<!--jbpm4.4工作流  -->

<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper">

<property name="jbpmCfg" value="jbpm.cfg.xml" />

</bean>

<bean id="processEngine" factory-bean="springHelper"  factory-method="createProcessEngine" />

 

 

   在這裏創建processEngine 對象,在這裏用到spring-jbpm4.cfg.xml,它的內容如下:

<?xml version="1.0" encoding="UTF-8"?>

<jbpm-configuration>

<process-engine-context>

    <string name="spring.cfg" value="spring-jbpm4.xml" />

  </process-engine-context>

<import resource="jbpm.default.cfg.xml" />

<import resource="jbpm.tx.spring.cfg.xml" />

<import resource="jbpm.jpdl.cfg.xml" />

<import resource="jbpm.bpmn.cfg.xml" />

<import resource="jbpm.identity.cfg.xml" />

<import resource="jbpm.businesscalendar.cfg.xml" />

<import resource="jbpm.console.cfg.xml" />

<!--  

<import resource="jbpm.jobexecutor.cfg.xml" />

-->

</jbpm-configuration>

 

看到這裏,或許你又會問:spring-jbpm4.cfg.xml裏又引用了那麼多的文件,這些文件在哪裏?這些文件,你不用擔心,他們都在jbpm.jar文件裏,這不是我們管的事。

  到這裏,算完了嗎?還沒有!前面說過,JBPM要數據庫表的支持才能工作,JBPM又是使用Hibernate操作數據庫,就不免要配置Hibernate的表與實體的映射文件,如下:

<property name="mappingLocations">
   <list>
    <value>classpath:jbpm.execution.hbm.xml</value>
    <value>classpath:jbpm.history.hbm.xml</value>
    <value>classpath:jbpm.identity.hbm.xml</value>
    <value>classpath:jbpm.repository.hbm.xml</value>
    <value>classpath:jbpm.task.hbm.xml</value>
      </list>
  </property>

如果用的是mysql數據庫的話那麼就要把hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

否則的話會出現問題的

   哈哈,到此,整合所需要做的配置,就是這些了,關鍵一步走完了,是不是很簡單呢?

   下面一步,就是jar包的添加,如果你已經整合了SSH2,那麼你只需要再添加jbpm.jar, juel-api.jarjuel-engine.jarjuel-impl.jarmail.jar即可

注:如果您用的是tomact6.0以上版本的話就必須把juel-api.jarjuel-engine.jarjuel-impl.jar這三個jar包添加到tomact的lib裏刪除原來的el-api.jar

       如果你還是用的是tomact5的話就直接把這些jar添加到項目的lib下就可以了

   我們部署到tomcat跑一下,看是否能成功。跑起來後,我們再做下測試,新建一個action,看代碼裏能否獲取到processEngine對象。

public class TestAction extends ActionSupport

{

    private ProcessEngine processEngine;

    public ProcessEngine getProcessEngine()

    {

        return processEngine;

    }

    /**

     * 測試是否整合成功

     */

    public String testJbpm()

    {

        System.out.println("整合成功");

        System.out.println("processEngine: "+processEngine);

        return SUCCESS;

    }

    

    public void setProcessEngine(ProcessEngine processEngine)

    {

        this.processEngine = processEngine;

    }

}

哈哈。整合完畢!

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