首页 > 代码库 > OA第七天---转向简单一个的jbpm项目
OA第七天---转向简单一个的jbpm项目
为了解决上一章提出的问题,现在去编写一个简单类似的jbpm代码!!
这个项目没有使用到spring,碰到第一个问题是sessionfactory应该怎么持久化呢??
在jbpm的配置文件jbpm.cfg.xml文件中:如下,可以看到其实就是简单的导入一些配置文件,这些配置文件都是jbpm自己的东西(当然除了下面标注的),
jbpm-configuration>
import resource="jbpm.default.cfg.xml" />
import resource="jbpm.businesscalendar.cfg.xml" />
import resource="jbpm.tx.hibernate.cfg.xml" /> //这个文件是自己写的
import resource="jbpm.jpdl.cfg.xml" />
import resource="jbpm.bpmn.cfg.xml" />
import resource="jbpm.identity.cfg.xml" />
/jbpm-configuration>
如果需要整合spring的话,需要加上:很好记的东西
<import resource="jbpm.tx.spring.cfg.xml" />
整合spring的一个很重要的类springHelper,放到spring中去管理吧,
springHelper实现了ApplicationContextAware接口,springHelper可以从spring容器中获得ApplicationContext,
然后springHelper可以利用ApplicationContext和jbpm.cfg.xml(jbpm的配置文件)一起生成伟大的processEngine。
<!-- 配置ProcessEngine -->
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper">
<property name="jbpmCfg" value=http://www.mamicode.com/"jbpm.cfg.xml"></property>
</bean>
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
上面标红的地方直接写的jbpm的配置文件,因为jbpm默认的就认为配置文件放在classpath下(也就是eclipse目录的src下),如果你要在src下建立一个文件夹话,那么就请加上这个文件的路径吧 !!看到网友的总结好像最好不要放在WEB-INF下(可以参考官方的开发指南,默认提供的SpringHelper只支持从classpath下读取配置。http://www.family168.com/tutorial/jbpm4devguide/html/springIntegration.html如果你想放在WEB-INF下,需要自己创建Configuration,然后设置jbpm.cfg.xml的位置,参考http://www.family168.com/tutorial/jbpm4.0/html/services.html,创建Configuration可以指定xml的位置,参考jbpm-api的javadoc)
如果整合了spring的话,发现jbpm的配置文件变为了这样,其实没有什么别的区别,只是herbinate的那个导入没有了,但是也咩有发现有jbpm.tx.spring.cfg.xml这个文件,难道又是jbpm自己有的(我觉得这两个文件都是jbpm自己所含的,你需要进行覆盖,因为要使用hibernate的话必须要写配置数据库的代码,当仅仅整合hibernate的话,那么就拿出这个文件来写一下,如果还整合了spring的话那么数据库的信息就在spring中进行编写了,也是就datasource)也就是:将jbpm.cfg.xml文件中<import resource="jbpm.tx.hibernate.cfg.xml" />一行,修改为 <import resource="jbpm.tx.spring.cfg.xml" />
在spring的配置文件中:appl;icationContext.xml,注意: 此处千万不要忘记了 ,这5个映射关系会在spring容器初始化的时候persistent到数据库中,如果没有,肯定会报exception,如果单独配置hibernate的话就写在jbpm.tx.hibernate.cfg.xm中
- <property name="mappingResources">
- <list>
- <value>jbpm.repository.hbm.xml</value>
- <value>jbpm.execution.hbm.xml</value>
- <value>jbpm.history.hbm.xml</value>
- <value>jbpm.task.hbm.xml</value>
- <value>jbpm.identity.hbm.xml</value>
- </list>
- </property>