首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring跟jbpm的详细配置

2012-08-25 
spring和jbpm的详细配置转载自:http://superleo.iteye.com/blog/323400Spring?和?jbpm?整合还是挺复杂的,

spring和jbpm的详细配置

转载自:http://superleo.iteye.com/blog/323400

Spring?和?jbpm?整合还是挺复杂的,我把整合的过程以及遇到的一些问题和大家共同分享一下,有不当之处,希望大家指正。我的开发环境是xp3,我所用到的框架版本如下:

?

struts2.0.11并且降级支持JDK1.4

spring2.0,

spring-modules-jbpm31-0.6.jar
jbpm3.1.4

hibernate.3.2.3

?

?

附件就是源码,请参照里面的readme.txt进行相应的配置。

?

?

在?Spring?中配置?jbpm?所使用的?SessionFactory

?

Spring?其它该怎么配还是怎么配置,对于?jbpm?所依赖的?sessionFactory?,我是这么配置的:

?

?

?

Xml代码?
  1. <bean?id="sessionFactory"?class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">??
  2. ????????<property?name="dataSource">??
  3. ????????????<ref?bean="dataSource"?/>??
  4. ????????</property>??
  5. ????????<property?name="mappingLocations">??
  6. ????????????<list>?????????
  7. ????????????????<!--?jbpm's?hbm.xml?-->??
  8. ????????????????????<value>classpath*:/org/jbpm/**/*.hbm.xml</value>??
  9. ??????????????????
  10. ????????????????<!--?other?hbm.xml?-->??
  11. ????????????<value>classpath*:/com/resoft/system/domain/*.hbm.xml</value>????????
  12. ????????????</list>??
  13. ????????</property>??
  14. ????????<property?name="hibernateProperties">??
  15. ????????????<props>??
  16. ????????????????<prop?key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>??
  17. ????????????????<prop?key="show_sql">true</prop>??
  18. ????????????????<prop?key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>??
  19. ????????????</props>??
  20. ????????</property>??
  21. ????</bean>??

?

?

我看有的喜欢将配置

?

?

Xml代码?
  1. <property?name="mappingLocations">??
  2. ????????????<list>?????????
  3. ????????????????<!--?jbpm's?的hbm.xml?-->??
  4. ????????????????????<value>classpath*:/org/jbpm/**/*.hbm.xml</value>??
  5. ??????????????????
  6. ????????????????<!--?其它地方自己配置的?hbm.xml?-->??
  7. ????????????????????<value>classpath*:/com/resoft/system/domain/*.hbm.xml</value>????????
  8. ????????????</list>??
  9. ????????</property>??
?

?

?

配置成:

?

?

Xml代码?
  1. <property?name="configLocations">?????????
  2. ?????????????<list>?????????
  3. ????????????????????<value>classpath:/hibernate.cfg.xml</value>????
  4.  ???????????????......??
  5. ????????????</list>?????????
  6. ????????</property>??
?

?

?

其实也行,不过hibernate.cfg.xml?文件对于后续的?spring?和?jbpm?整合也没有多大用处,尽量争取统一在一处配置即可。下面还会有详细说明。

还有一点就是本?demo?是一个很简单的整合实例,所以其它的?PO?对象所对应的表也和?jbpm?放在一起。实际用的时候,可能需要配置多个数据源,多个?sessionFactory?,并用?JTA?来进行全局事务处理。

?

?

?

开始在?Spring?中配置?jbpm

?

请注意,现在才是配置的开始,继续在spring的xml中配置

?

?

?

?

Xml代码?
  1. <!--?关于jbpmConfiguration的配置?-->??
  2. ????<bean?id="jbpmConfiguration"?class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">??
  3. ????????<property?name="sessionFactory"?ref="sessionFactory"?/>??
  4. ????????<property?name="configuration"?value="classpath:jbpm.cfg.xml"?/>??
  5. ????????<!--?第一处需要注意的地方?-->??
  6. ????????<property?name="processDefinitions">??
  7. ????????????<list>??
  8. ????????????????<ref?local="holidayWorkflow"?/>??
  9. ????????????</list>??
  10. ????????</property>??
  11. ????????<!--?没什么好说的,是否需要重新建表?-->??
  12. ????????<property?name="createSchema"?value="${jbpmConfiguration.createSchema}"?/>??
  13. ????</bean>??
  14. ??
  15. ??
  16. <bean?id="holidayWorkflow"?class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">??
  17. ????<!--?第二处需要注意的地方?-->??
  18. ????????<property?name="definitionLocation"?value="classpath:jbmp/workflow/holiday/holiday.zip"?/>??
  19. ????</bean>??
  20. ??
  21. ????<bean?id="holidayTemplate"?class="org.springmodules.workflow.jbpm31.JbpmTemplate">??
  22. ????????<constructor-arg?index="0"?ref="jbpmConfiguration"?/>??
  23. ????????<!--?第三处需要注意的地方?-->??
  24. ????????<constructor-arg?index="1"?ref="holidayWorkflow"?/>??
  25. ????</bean>??

?

?

?

先看

?

?

Xml代码?
  1. <!--?第一处需要注意的地方?-->??
  2. ????????<property?name="processDefinitions">??
  3. ????????????<list>??
  4. ????????????????<ref?local="holidayWorkflow"?/>??
  5. ????????????</list>??
  6. ????????</property>??

?

?

这样配置后,每次重新启动的时候,都会重新发布?list?里的流程,开发的时候建议这么做。

?

再看

?

?

Java代码?
  1. <!--?第二处需要注意的地方?-->??
  2. ????<property?name="definitionLocation"?value="classpath:jbmp/workflow/holiday/holiday.zip"?/>??
?

?

?

以前整合过的人非常奇怪我这个地方怎么是一个?zip?,而不是什么?processdefinition.xml?文件之类的。最开始的时候,我下载了?javaeye中某个人写的代码,里面说流程发布一定要通过插件发布,不能通过代码,?后来慢慢在自己摸索中发现,这是?springmodule?的一个不完善的地方。所谓的插件形式发布,我看了代码,就是调用一个执行上传?zip?包的?servlet?。然后再通过?jbpm?的?API?将?zip?包中的gpd.xml?,?processdefinition.xml?,?processimage.jpg?解析发布,最后可以在页面使用?jbmp?自带的?jsp tag?标签?(?可以随便修改?)?,将?processimage.jpg?所在流程的正确位置显示出来。

?

好了,下载?spring-module-jbmp3.1?的源码打开

org.springmodules.workflow.jbpm31.definition. ProcessDefinitionFactoryBean?类,大概在第?56?行左右的地方,将

?

?

Java代码?
    font-size: 1em; line-height: 1.4em; margin-top: 0px; marg

热点排行