浏览 4569 次
锁定老帖子 主题:jbpm4与spring整合
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-10
最后修改:2009-08-24
jBPM4.0整合步骤如下: ● 在WEB-INF\lib目录下增加jbpm.jar ● 在applicationContext.xml的sessionFactorybean中增加属性: <property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" /> ●首先建立配置文件jbpm.hibernate.cfg.xml,放到src下: <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/OA</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.format_sql">false</property> <mapping resource="jbpm.repository.hbm.xml" /> <mapping resource="jbpm.execution.hbm.xml" /> <mapping resource="jbpm.history.hbm.xml" /> <mapping resource="jbpm.task.hbm.xml" /> <mapping resource="jbpm.identity.hbm.xml" /> </session-factory> </hibernate-configuration> ● 在applicationContext.xml的中增加bean引入sessionFactory: <bean id="processEngine" class="org.shb.wfm.workflow.ProcessEngineFactoryBean"> <property name="sessionFactory" ref="sessionFactory"/> </bean> ●书写一个ProcessEngineFactoryBean类,主要代码如下: public void afterPropertiesSet() { SpringConfiguration cfg = new SpringConfiguration(jbpmConfigurationLocation); cfg.setApplicationContext(applicationContext); cfg.setSessionFactory(sessionFactory); this.processEngine = cfg.buildProcessEngine(); } 这里主要是创建流程引擎,以提供使用者在service层中调用。 ●把jbpm.default.cfg.xml中的下面代码注释掉: <hibernate-configuration> <cfg resource="jbpm.hibernate.cfg.xml" /> </hibernate-configuration> <hibernate-session-factory /> ● 其次建立配置文件jbpm.cfg.xml,放到config目录下: <?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <import resource="jbpm.default.cfg.xml" /> <import resource="jbpm.tx.hibernate.cfg.xml" /> <import resource="jbpm.jpdl.cfg.xml" /> <import resource="jbpm.identity.cfg.xml" /> </jbpm-configuration> 这样,jBPM4.0就整合好了 在处理方法中添加: ProcessEngine processEngine = jbpmConfiguration.buildProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); String deploymentId = repositoryService.createDeployment() .addResourceFromClasspath("****.jpdl.xml").deploy(); repositoryService.deleteDeployment(deploymentId); 这里的****是需要发布的jbpm流程文件名。 本文参考 http://www.iteye.com/topic/416883对原配置做了修改,以免重复创建的sessionFactory。 很简单的配置,水平有限,各位不要拍砖。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-08-10
以上配置会导致hibernate.cfg.xml被spring和jbpm4重复加载两次,生成两个sessionFactory,这两个sessionFactory也无法互相调用。
如果希望jbpm4中复用spring中维护的session以及transactionManager,请参考这里: http://www.iteye.com/topic/416883 |
|
返回顶楼 | |
发表时间:2009-08-11
最后修改:2009-08-11
多谢指点,已经根据你给文章的内容作了修改,不过你给的文章的配置文件,名称在GA版已经不一样了,去掉了spring字样。
|
|
返回顶楼 | |