eclipse下jbpm4.4集成spring

     网上找了一大堆资料,大多类同不是转载就是复制,很多根本没有验证过是否行的。错漏百出。
    第一种方法:
    一、spring的配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.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/jbpm4db" />
  <property name="user" value="root" />
  <property name="password" value="" />
  <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>

 <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="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="mappingResources">
   <list>
    <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.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    
   </props>
  </property>
 </bean>


 <!-- 配置事务管理器 -->
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

 <!--
  配置事务的传播特性 要引入spring-tx-2.0.xsd标签
  不然会出现spring无法创建sessionFactory的异常,进一步是因为无法解析到txAdvice这些对象
 -->
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <!-- 在开发的时候可以这样定义,但部署的时候一定要详细定义 -->


   <tx:method name="add*" propagation="REQUIRED" />
   <tx:method name="search*" propagation="REQUIRED" />
   <tx:method name="del*" propagation="REQUIRED" />
   <tx:method name="update*" propagation="REQUIRED" />
   <tx:method name="*" propagation="REQUIRED" />

  </tx:attributes>
 </tx:advice>

 <!-- 那些类的哪些方法参与事务 -->
 <aop:config>
  <aop:pointcut id="allManagerMethod" expression="execution(* services.impl.*.*(..))" />
  <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
 </aop:config>

</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到内存中的字节码出现乱七八糟的问题。
需要特别说明的是
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、有人数tomcat5下不会出现jar包冲突的情况,我不知道,没用过,我就不试了,哈哈

第二种方法:

 

 

你可能感兴趣的:(eclipse,spring,AOP,bean,jbpm)