3.JBPM与SSH框架整合

使用Jbpm进行软件开发,最终不可避免的与Java软件应用开发框架的老大ssh完成整合。

这里整合使用的各个框架的版本:

Spring 2.5

hibernate 3.2

Struts 2.1

jbpm 4.4

整合过程并不复杂。

1.在ssh框架中加入jbpm所需jar文件

   在ssh框架基础添加jar文件的话,需要的jar文件不多,主要是drools系列和jbpm核心jar包。

   另外jbpm使用的el解析jar包juel系列jar包,在加入工程jar环境后,jsp页面解析el出现文件,造成该问题的原因为与tomcat自带的el解析jar文件冲突混淆,所以讲juel系列jar文件加入了tomcat服务器环境jar目录中,文件就解决了。

2.创建jbpm框架资源数据库

  这点和之前提到的jbpm安装方式差不多,不过可以更简单的用jbpm中提供的对应数据库版本的sql文件,直接创建。

  在实际开发中,有的表的字段长度得进行适当调整,比如变量中字符串变量值得长度,有时候255就有点少了,容易造成数据存储数据异常。

3.jbpm与ssh的配置文件的整合,其实主要就是与spring框架的整合。

   整合方式,首先就是jbpm数据库资源配置与spring容器配置文件整合。

   这里建议jbpm使用数据库与业务系统使用数据库一致,不要再spring资源容器中配合两个数据库资源信息。查看jpbm源码,如果使用了spring整合方式,jbpm是按照bean 的class type进行容器资源检索,取出第一个符合要求的数据库资源配置对象,就是sessionFactory对象,这第一个到底是不是jbpm资源数据库,就不一定了,除非你保证它是第一个被加入spring容器中的。

  

   数据库资源配置就不多说了,和普通的spring数据库资源配置一样。jbpm配置信息如下:

<bean id="jbpmSpringHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper"
		lazy-init="default" autowire="default" dependency-check="default">
		<property name="jbpmCfg">
			<value>jbpm.cfg.xml</value>
		</property>
	</bean>

	<bean id="jbpmProcessEngine" factory-bean="jbpmSpringHelper"
		factory-method="createProcessEngine"></bean>

	<bean id="jbpmRepositoryService" factory-bean="jbpmProcessEngine"
		factory-method="getRepositoryService"></bean>

	<bean id="jbpmExecutionService" factory-bean="jbpmProcessEngine"
		factory-method="getExecutionService"></bean>

	<bean id="jbpmTaskService" factory-bean="jbpmProcessEngine"
		factory-method="getTaskService"></bean>

	<bean id="jbpmHistoryService" factory-bean="jbpmProcessEngine"
		factory-method="getHistoryService"></bean>

	<bean id="jbpmManagementService" factory-bean="jbpmProcessEngine"
		factory-method="getManagementService"></bean>

	<bean id="jbpmIdentityService" factory-bean="jbpmProcessEngine"
		factory-method="getIdentityService"></bean>

   主要是SpringHelper对象,这是jbpm为了与spring实现方便整合,设置的对象。

   另外需要加入jbpm.cfg.xml配置文件与jbpm.mail.templates.xml文件,这两个文件不需要做太多的改动。jbpm.cfg.xml文件整合内容如下:

  

  

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

<jbpm-configuration>

	<import resource="jbpm.default.cfg.xml" />
	<import resource="jbpm.businesscalendar.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" />

	<!-- Job executor is excluded for running the example test cases. -->
	<!-- To enable timers and messages in production use, this should be included. -->
	<!-- <import resource="jbpm.jobexecutor.cfg.xml" /> -->

	<process-engine-context>
		<string name="spring.cfg" value="config/spring/applicatioinContext-jbpm.xml"></string>
	</process-engine-context>

</jbpm-configuration>

    红色注明的部分,就是在默认的jbpm.cfg.xml文件基础上,改动的部分。

  

相关推荐