- 論壇徽章:
- 0
|
一、spring的配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns si="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/s ... ing-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
<property name="user" value="root"/>
<property name="password" value="cqsztt"/>
<property name="initialPoolSize" value="3" />
<property name="minPoolSize" value="3" />
<property name="maxPoolSize" value="50" />
<property name="maxIdleTime" value="600" />
<property name="maxStatements" value="100" />
<property name="acquireIncrement" value="3" />
</bean>
<!--spring的配置文件有兩處需要改動的地方,此為1:
springHelper實現(xiàn)了ApplicationContextAware接口,springHelper可以從spring容器中獲得ApplicationContext,
然后springHelper可以利用ApplicationContext和jbpm.cfg.xml(jbpm的配置文件)一起生成偉大的processEngine。
配置到這一步的時候,有些人就開始著急測試,多次碰壁后,有的高手居然想到了使用Spring 的IOC功能自己寫個processEngin工廠
,大家都知道jbpm使用了hibernate,但如何將hibernate的sessionFactory注入給JBPM呢?莫及,繼續(xù)往下看
-->
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
<!--Hibernate SessionFatory-->
<bean id="sessionFactory"
class="com.travelsky.bravo.core.utils.AutoLoadSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<!--此處為第二處需要修改的地方
此處千萬不要忘記了 ,這5個映射關(guān)系會在spring容器初始化的時候persistent到數(shù)據(jù)庫中,如果沒有,肯定會報exception
寫到這里我要說明下:看過jbpm有個關(guān)于hibernate配置的文件:jbpm.hibernate.cfg.xml,我這種寫法就是要去掉這個文件,
將spring + jbmp都使用一個Hibernate的配置,也就不會出現(xiàn)兩個sessionFactory和兩個database的情況了。有的同學可 發(fā)表不同的意見認為:將hibernate的配置信息寫到一個單獨的文件里,感覺清爽些。但是,無論如何,你總得在這個文件里配置sessionFactory吧,所以總得配置hibernate的東東,所以干脆寫在一起,將來修改起來也方便,不需要打開兩個文件,至于其他細節(jié)東西我就不到啰嗦了,到此,spring的配置文件就結(jié)束了。
-->
<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>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--事務管理的配置,不這么配置不影響ssh+jbpm整合-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="is*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(public * com.cqs.service.impl.*.*(..))" id="userServicePointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="userServicePointcut"/>
</aop:config>
<!--不影響ssh+jbpm整合-->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
二、 jbpm的配置文件
1、jbpm.cfg.xml
< jbpm-configuration >
< import resource =" jbpm.default.cfg.xml " />
< import resource =" jbpm.tx.spring.cfg.xml " /><!--jbpm.tx.hibernate.cfg.xml不用了,無需其他配置-->
< import resource =" jbpm.jpdl.cfg.xml " />
< import resource =" jbpm.bpmn.cfg.xml " />
< import resource =" jbpm.identity.cfg.xml " />
< import resource =" jbpm.businesscalendar.cfg.xml " />
</ jbpm-configuration >
三、 部署到Tomcat
整合struts2就沒什么好講的了,主要是spring和struts2整合,jbpm部署到tomcat6的時候,主要jar包沖突的問題,tomcat的lib里面的東西和項目lib里面的jar包版本等不一樣的時候容易造成load到內(nèi)存中的字節(jié)碼出現(xiàn)亂七八糟的問題。
需要特別說明的是
1、WEB-INF/lib下面的三個jar包juel.jar,juel-engine.jar,juel-impl.jar剪切 到tomcat的lib下
2、在tomcat的lib中新加javaee.jar,重新部署,并啟動tomcat,如果成功即可,不成功需要刪除tomcat lib下的el-api.jar
3、有人數(shù)tomcat5下不會出現(xiàn)jar包沖突的情況,我不知道,沒用過,我就不試了,哈哈
原文 http://hi.baidu.com/victorlin23/ ... 91ee8fd0581b65.html |
|