要想整合ssh与jbpm,首先需要对jbpm有个整体的了解和认识。研究过JBPM的人都知道,JBPM在操作流程时,一切都是基于ProcessEngine对象,所以整合的思路很简单,第一步只要我们能让Spring创建出ProcessEngine,通过spring容器管理ProccessEngine对象。第二步JBPM在管理流程时,是需要数据库表的支持的,整合jbpm与ssh的第二步就是将jbpm的数据库表的创建工作交给hibernate来完成。
1、添加工作流资源配置文件jbpm.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" />
</jbpm-configuration>
其中jbpm.cfg.xml配置文件中引用的许多配置文件都来自于jbmp.jar中,我们只需要将jbpm.jar引入到项目中,不需要再去将这些文件一个个引入。
2、配置spring配置文件
processEngine 对象交给spring管理
<!--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" />
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
将processEngine对象交给spring容器管理,spring容器负责维护processEngine对象的整个生命周期。
引入工作流实体映射文件
<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>
因为工作流的许多数据需要持久化到数据库中,而jbpm的持久化是由hibernate来完成的所以这里需要加入实体映射的配置文件。
3、jar包导入
最后一步就是导入jbpm需要的jar包,由于项目已经整合了ssh,所以这里只需要导入jbpm所需要的jar包即可,需要再向项目中添加jbpm.jar, juel-api.jar,juel-engine.jar,juel-impl.jar,mail.jar
ssh+jbpm所需要的jar包
运行系统正常启动tomcat服务器,打开数据库发现数据库中已生成与数据流业务相关的18张表,说明ssh与jbpm整合成功!
至此jbpm的所有的开发环境基本配置完成,整个的整合过程主要是看你对spring、hibernate、jbpm的了解,如果了解jbpm的话你就会想到将processEngine对象交给spring管理,jbpm的持久化工作交给hibernate来完成,加上ssh的基础具体的配置就相对简单了。下一步就是在系统中应用工作流,具体的如何在系统中使用目前还没有完全的掌握,不过会尽快试着做出一个demo分享给大家!