JBPM基于Spring系统工作流平台整合1------版本以及系统配置
声明:该文系作者原创,如您用于商业用途或者论文发表,请您一定要通知作者本人同意方可引用。
jbpm版本3.2.3
http://www.jboss.com/products/jbpm
下载后的文件是jbpm-jpdl-suite-3.2.3.zip,解压缩,可以直接通过JBOSS方式启动。 http://localhost:XXXX/jbpm-console。
jbpm-jpdl-3.2.3下各文件夹
|--- db 这里都是些sql定义和数据文件,如果改用其它数据库,可以使用这些资源来创建。jBPM 默认使用的是内存数据库 hsqldb
|--- deploy 用来部署你的应用的包和资源
|--- designer 这里是Eclipse插件,这样你就可以在图形界面来定义你的业务流程
|--- doc 这里是jBPM相关组件的API 文档
|--- examples 这里是些学习的例子
|--- lib jBPM 的类库
|--- server 这里有一个JBoss 服务器,并且包含了本JBoss jBPM引擎,还部署了websale例子
|--- src 这里是JBoss jBPM的源代码
springmodules版本
springmodules http://springmodules.dev.java.net/
选中文档和文件即可。
版本0.9,spring-modules-0.9.zip,将其解压缩,找到spring-modules-jbpm31.jar就是需要的jar包。
系统需要引入的jar包
jbpm-jpdl.jar jpdl功能的核心库,它是一个典型的jar文件,它涵盖对流程定义和运行时流程实例上下文环境的操API。在最简化的业务流程样例中,jPDL将流程定义存储与XML格式的定义文件中,在运行时载入内存,在内存里记录完整的业务实例和执行过程的环境变量,并完成全部操作。在实际应用中,流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。
jbpm-identity.jar包含了身份组件的可选库。
spring-modules-jbpm31.jar jbpm通过spring方式整合的jar包。
application-context配置
通过在application-tontext的配置,将jbpm通过spring方式整合到UNICALL系统中,定义UNICALL系统工作流中间层的接口定义。
<!-- 以下是jbpm工作流引擎相关配置 by wangyisong -->
<bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="sessionFactory" ref="sessionFactory" />
<property name="configuration" value="classpath:jbpm.cfg.xml"/>
<!--<property name="createSchema" value="false"/>--> <!-- unused,it can be deploy false, deploy success,then set it -->
<!--<property name="processDefinitions">
<list>
<ref local="testProcess"/>
</list>
</property>-->
<!-- jbpm.cfg.xml 配置JBPM的参数,如邮件服务器地址等,保持默认即可,此文件需加入以SRC目录下。如目录不同,需同步更改此处配置-->
</bean>
<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
<property name="jbpmConfiguration" ref="jbpmConfiguration" />
</bean>
<!-- jbpmDao是系统加入的abstract BEAN,所有的DAO都Extends此BEAN,这样子DAO可以不关心具体的JbpmTemplate是什么,是需要用getTemplate即可操作JBPM-->
<bean id="jbpmProcessDao" class="com.unihub.unicall.jbpm.basiclass.impl.JbpmProcessDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
<property name="jbpmTemplate" ref="jbpmTemplate" />
</bean>
<!-- 工作流中间接口 -->
<bean id="wfManageService" class="com.unihub.unicall.workflow.service.impl.WfManageServiceImpl">
<property name="sessionFactory" ref="sessionFactory" />
<property name="jbpmProcessDao" ref="jbpmProcessDao" />
</bean>
<!-- jbpm工作流引擎相关配置结束 -->