ssh2 整合jbpm

来源:互联网 发布:python 驼峰命名 编辑:程序博客网 时间:2024/04/20 22:31

      这个礼拜一直在研究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;

    }

}

哈哈。整合完毕!