欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3.JBPM与SSH框架整合

程序员文章站 2022-04-28 21:13:35
...

使用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文件基础上,改动的部分。