在tomcat下初步整合spring和jbpm

来源:互联网 发布:怎么用云解析解析域名 编辑:程序博客网 时间:2024/05/20 20:03

项目中要做公文流转和业务流程定制功能,需要使用到工作流,同时工程中还包括spring、struts、hibernate,因在选择工作流引擎时想到使用jbpm,网上找的大量资料都有些许错误,经过长达一个月的摸索初步配置成功。 

环境:

eclipse 3.2+myeclipse 5.0

hibernate 3.2(使用hibernate3.0没有成功)

原本使用spring的配置文件applicationContext.xml来配置hibernate各项属性,但没有成功,老提示找不着hibernate.cfg.xml。因此使用了以下配置

hibernate.cfg.xml:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
    <session-factory>
        <property name="connection.username">jbpm</property>
        <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jbpm</property>
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="myeclipse.connection.profile">jbpm</property>
        <property name="connection.password">jbpm</property>
        <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
    </session-factory>

</hibernate-configuration>

在spring的配置文件里引入hibernate配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
 
 <!-- Hibernate SessionFactory -->
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation">
   <value>classpath:hibernate.cfg.xml</value>
  </property>
  <property name="mappingLocations">
   <value>classpath*:/org/jbpm/**/*.hbm.xml</value>
  </property>
 </bean>
 <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref local="sessionFactory" />
  </property>
 </bean>

 <!-- reading jBPM process definitions -->
 <bean id="simpleWorkflow"
  class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
  <property name="definitionLocation"
   value="classpath:org/springmodules/workflow/jbpm31/processdefinition.xml" />
 </bean>
 <!-- jBPM configuration-->
 <!--bean id="hibernateConfiguration" factory-bean="sessionFactory" factory-method="getConfiguration"/-->
 <bean id="jbpmConfiguration"
  class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
  <property name="sessionFactory" ref="sessionFactory" />
  <property name="configuration" value="/WEB-INF/jbpm.cfg.xml" />
  <property name="processDefinitions">
   <list>
    <ref local="simpleWorkflow" />
   </list>
  </property>
  <property name="createSchema" value="true" />
 </bean>
 <!-- jBPM template -->
 <bean id="jbpmTemplate"
  class="org.springmodules.workflow.jbpm31.JbpmTemplate">
  <constructor-arg index="0" ref="jbpmConfiguration" />
  <constructor-arg index="1" ref="simpleWorkflow" />
 </bean>
 <bean id="JbpmTest" class="com.camst.JbpmTest">
  <property name="jbpmTemplate" ref="jbpmTemplate"/>
 </bean>
</beans>

需要注意的地方:

<bean id="simpleWorkflow"
  class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
  <property name="definitionLocation"
   value="classpath:org/springmodules/workflow/jbpm31/processdefinition.xml" />
 </bean>

<bean name="/allProcessList" class="com.camst.AllProcessListAction">
  <property name="jbpmTest" ref="JbpmTest"/>
 </bean>
中的processdefinition.xml必须存在于相应目录。

建立一个测试类,该测试类用来获取所有的流程定义。

启动工程,测试,成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

原创粉丝点击