求一个hibernate+spring+struts2.0+jbpm4.0的小例子或则思路 如题,我做完后开源。把所有复杂都集成进去acegi等。。希望哪位大哥能给个如题的小例我。。希望大家顶一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个spring整合jbpm的例子:http://www.javaeye.com/topics/download/6cc3d8db-6883-3724-b3c6-00a564da1592 有的话也给我送份谢了[email protected] 在此请求哪位大爷能给个hibernate+spring+struts2.0+jbpm4.0、我在这里谢谢了 手工将SessionFactory放入jBPM4中。第1步:更改jbpm.spring.default.cfg.xml配置文件,将下面的部分注释掉<!-- <hibernate-configuration> <cfgresourcecfgresource="jbpm.hibernate.cfg.xml"/> </hibernate-configuration> <hibernate-session-factory/> --> 注释的部分是在jBPM4中创建了sessionFactory,而我们只需要一个sessionFactory。既然要将jBPM4与Spring的整合,那就希望由Spring来统一管理sessionFactory和事务,在Spring的配置文件中构造一个sessionFactory。ProcessEngine是jBPM4的Facade模式,一切由它与外部交互,第2步:在Spring配置文件中写一个bean:<beanidbeanid="processEngine"class="com.family168.jbpm.ProcessEngineFactoryBean"> <propertynamepropertyname="sessionFactory"ref="sessionFactory"/> </bean> 第3步:在ProcessFactoryBean中注入SessionFactory:publicvoidsetSessionFactory(SessionFactorysessionFactory){ this.sessionFactory=sessionFactory; } 第4步:在ProcessFactoryBean中创建一个SpringConfiguration,然后将sessionFactory放入SpringConfiguration中,再从SpringConfiguration得到processEngine,代码如下:publicvoidafterPropertiesSet(){ SpringConfigurationcfg=newSpringConfiguration(jbpmConfigurationLocation); cfg.setApplicationContext(applicationContext); cfg.setSessionFactory(sessionFactory); this.processEngine=cfg.buildProcessEngine(); } 然后我们的工作就可以开展了,可以从processEngine得到所有的service。比如:ProcessEngineprocessEngine=(ProcessEngine)ctx.getBean("processEngine"); RepositoryServicerepositoryService=processEngine.getRepositoryService(); 第2种:获得Hibernate的SessionFactory。第1步:与第一种方式的第1步一样。第2步:更改jbpm.tx.spring.cfg.xml配置文件:将<standard-transaction-interceptor/>改成<spring-transaction-interceptorcurrent="true"/>然后将<transaction/><hibernate-session/>改成<hibernate-sessioncurrent="true"/>这部分修改是将jBPM4创建的spring事务和hibernate的session改成从当前的ThreadLocal中获得session和事务。第3步:在Spring配置文件中写bean,processEngine和template:<beanidbeanid="jbpmConfiguration"class="org.jbpm.pvm.internal.cfg.SpringConfiguration"> <constructor-argvalueconstructor-argvalue="jbpm/jbpm.cfg.xml"/> </bean> <beanidbeanid="processEngine"factory-bean="jbpmConfiguration"factory-method="buildProcessEngine"/> <beanidbeanid="jbpmTemplate"class="com.family168.jbpm.JbpmTemplate"> <propertynamepropertyname="processEngine"ref="processEngine"/> <propertynamepropertyname="dataSource"ref="dataSource"/> </bean> processEngine直接使用factory-bean指向jbpmConfiguration,也就是org.jbpm.pvm.internal.cfg.SpringConfiguration,并从SpringConfiguration的buildProcessEngine中获得。jbpmTemplate主要是控制事务,在processEngine外面创建事务,这样使用的时候会先调用jbpmTemplate,再调用processEngine,否则它会说事务没有启动。在jbpmTemplate中注入processEngine:publicvoidsetProcessEngine(ProcessEngineprocessEngine){ this.processEngine=processEngine; } 不搞这了。觉得jbpm没多大用处,如果你不是真正面对项目有的话。。 js el表达式取值 如何强制Text文本框为大写字母 java web中通过session共享数据不好使啊。谢谢各位老师了!!!!!!!!!!!!! 补充下我上次回贴的不足,在这向大家道歉,知识点出现了错误 一个文本框只允许输入数字 一个怪现象,大家来看看~ 如何按Enter键触发Tab事件 请问SQL Server 2000中的SQL_Latin1_General_CP1_C1_AS排序规则语言是english(United states),在jsp中怎么设置其Charset? 高分请教 如何判断一个字符串是空? iframe框架显示的问题 Struts2单元测试的问题
http://www.javaeye.com/topics/download/6cc3d8db-6883-3724-b3c6-00a564da1592
[email protected]
我在这里谢谢了
<hibernate-configuration>
<cfgresourcecfgresource="jbpm.hibernate.cfg.xml"/>
</hibernate-configuration>
<hibernate-session-factory/>
-->
注释的部分是在jBPM4中创建了sessionFactory,而我们只需要一个sessionFactory。既然要将jBPM4与Spring的整合,那就希望由Spring来统一管理sessionFactory和事务,在Spring的配置文件中构造一个sessionFactory。ProcessEngine是jBPM4的Facade模式,一切由它与外部交互,第2步:在Spring配置文件中写一个bean:<beanidbeanid="processEngine"class="com.family168.jbpm.ProcessEngineFactoryBean">
<propertynamepropertyname="sessionFactory"ref="sessionFactory"/>
</bean>
第3步:在ProcessFactoryBean中注入SessionFactory:publicvoidsetSessionFactory(SessionFactorysessionFactory){
this.sessionFactory=sessionFactory;
}
第4步:在ProcessFactoryBean中创建一个SpringConfiguration,然后将sessionFactory放入SpringConfiguration中,再从SpringConfiguration得到processEngine,代码如下:publicvoidafterPropertiesSet(){
SpringConfigurationcfg=newSpringConfiguration(jbpmConfigurationLocation);
cfg.setApplicationContext(applicationContext);
cfg.setSessionFactory(sessionFactory);
this.processEngine=cfg.buildProcessEngine();
}
然后我们的工作就可以开展了,可以从processEngine得到所有的service。比如:ProcessEngineprocessEngine=(ProcessEngine)ctx.getBean("processEngine");
RepositoryServicerepositoryService=processEngine.getRepositoryService(); 第2种:获得Hibernate的SessionFactory。第1步:与第一种方式的第1步一样。第2步:更改jbpm.tx.spring.cfg.xml配置文件:将<standard-transaction-interceptor/>改成<spring-transaction-interceptorcurrent="true"/>然后将<transaction/><hibernate-session/>改成<hibernate-sessioncurrent="true"/>这部分修改是将jBPM4创建的spring事务和hibernate的session改成从当前的ThreadLocal中获得session和事务。第3步:在Spring配置文件中写bean,processEngine和template:<beanidbeanid="jbpmConfiguration"class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
<constructor-argvalueconstructor-argvalue="jbpm/jbpm.cfg.xml"/>
</bean>
<beanidbeanid="processEngine"factory-bean="jbpmConfiguration"factory-method="buildProcessEngine"/>
<beanidbeanid="jbpmTemplate"class="com.family168.jbpm.JbpmTemplate">
<propertynamepropertyname="processEngine"ref="processEngine"/>
<propertynamepropertyname="dataSource"ref="dataSource"/>
</bean>
processEngine直接使用factory-bean指向jbpmConfiguration,也就是org.jbpm.pvm.internal.cfg.SpringConfiguration,并从SpringConfiguration的buildProcessEngine中获得。jbpmTemplate主要是控制事务,在processEngine外面创建事务,这样使用的时候会先调用jbpmTemplate,再调用processEngine,否则它会说事务没有启动。在jbpmTemplate中注入processEngine:publicvoidsetProcessEngine(ProcessEngineprocessEngine){
this.processEngine=processEngine;
}