jbpm 与 spring的整合问题。
|
cnwy
2008-04-23
从网上收了一下相关帖子,使用spring-modules-jbpm31进行整合,但是并没有实现
1. 与原有spring事务的集成(hibernate session) 2. 当然声明式事务也不行 我是这么做的: 1.修改sessionFactory的配置,加入
<property name="mappingJarLocations">
<list>
<value>classpath*:jbpm-3.1.4.jar</value>
<value>classpath*:jbpm-identity-3.1.4.jar</value>
</list>
</property>
2.定义jbpmConfiguration
<bean id="jbpmConfiguration"
class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="sessionFactory" ref="sessionFactoryBean"/>
<property name="configuration" value="classpath:jbpm.cfg.xml"/>
</bean>
3.仿照HibernateDaoSupport的方式编写JbpmService
public class JbpmService extends JbpmDaoSupport
{
public ProcessInstance findProcessInstance(final Long processInstanceId)
{
return getTemplate().findProcessInstance(processInstanceId);
}
...
4.定义JbpmService 先后试了两种,第二种实际上是不起作用的
<bean id="jbpmService"
class="com.service.JbpmService">
<property name="jbpmConfiguration" ref="jbpmConfiguration"/>
</bean>
<!--<bean id="jbpmService" parent="proxyFactoryBean">-->
<!--<property name="target">-->
<!--<bean class="com.service.JbpmService">-->
<!--<property name="jbpmConfiguration">-->
<!--<ref bean="jbpmConfiguration"/>-->
<!--</property>-->
<!--</bean>-->
<!--</property>-->
<!--</bean>-->
5.测试程序能正常工作,但达不到我上面说的要求。
JbpmService jbpmService = (JbpmService)currentContext().getBean("jbpmService");
System.out.println("jbpmService = " + jbpmService);
List instances = jbpmService.findTaskInstances("xx");
System.out.println("instances.size() = " + instances.size());
为了实现上面说的要求,我只能从HibernateDaoSupport继承下来。再拷贝JbpmTemplate中的callback的实现方法,把session放到context中,这样可以实现前面说的两点,但完全没有利用上JbpmTemplate和JbpmDaoSupport。始终感觉是这不是最佳用法。 大家都是怎么做的? |
|
|
cnwy
2008-04-24
搞定了,是我自己测试的时候搞错了,最简单的方法是对的。
第4步,换成:
<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
<constructor-arg index="0" ref="jbpmConfiguration"/>
</bean>
<bean id="jbpmService" parent="proxyFactoryBean">
<property name="target">
<bean class="com.service.JbpmService">
<property name="template">
<ref bean="jbpmTemplate"/>
</property>
</bean>
</property>
</bean>
就可以了。 |
|
|
lee_xq1984
2008-04-28
留个名!方便以后查找!
|
|
|
crabboy
2008-05-06
我也留个名
|
|
|
crabboy
2008-05-09
currentContext()哪来的啊?
|
|
|
crabboy
2008-05-11
parent="proxyFactoryBean"怎么来的啊? |
|
|
isky
2008-05-12
一直 没有做过spting 与 jbpm整合过 今天先学习以下
|

