要想整合ssh与jbpm,首先需要对jbpm有个整体的了解和认识。研究过JBPM的人都知道,JBPM在操作流程时,一切都是基于ProcessEngine对象,所以整合的思路很简单,第一步只要我们能让Spring创建出ProcessEngine,通过spring容器管理ProccessEngine对象。第二步JBPM在管理流程时,是需要数据库表的支持的,整合jbpm与ssh的第二步就是将jbpm的数据库表的创建工作交给hibernate来完成。
<?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>
<!--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来完成的所以这里需要加入实体映射的配置文件。
最后一步就是导入jbpm需要的jar包,由于项目已经整合了ssh,所以这里只需要导入jbpm所需要的jar包即可,需要再向项目中添加jbpm.jar, juel-api.jar,juel-engine.jar,juel-impl.jar,mail.jar
运行系统正常启动tomcat服务器,打开数据库发现数据库中已生成与数据流业务相关的18张表,说明ssh与jbpm整合成功!
至此jbpm的所有的开发环境基本配置完成,整个的整合过程主要是看你对spring、hibernate、jbpm的了解,如果了解jbpm的话你就会想到将processEngine对象交给spring管理,jbpm的持久化工作交给hibernate来完成,加上ssh的基础具体的配置就相对简单了。下一步就是在系统中应用工作流,具体的如何在系统中使用目前还没有完全的掌握,不过会尽快试着做出一个demo分享给大家!