把jbpm3整合进ssh中

     网上有好多关于jbpm独立部署的资料,但好多人是在已有的系统的部署jbpm,这里就说下如何在ssh框架的基础上配置jbpm3。
1. 环境:jbpm3.2.3+struts2+spring3+hibernate    工具:myeclipse6.5
2. 环境和工具都准备好,开始新建数据库,前面 jbpm3数据库表的创建与解释有说明
3. 使用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"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" >

    
< bean  id ="dataSource"
        class
="org.apache.commons.dbcp.BasicDataSource" >
        
< property  name ="driverClassName"
            value
="com.mysql.jdbc.Driver" >
        
</ property >
        
< property  name ="url"
            value
="jdbc:mysql://localhost:3306/eteares" >
        
</ property >
        
< property  name ="username"  value ="root" ></ property >
        
< property  name ="password"  value ="root" ></ property >
    
</ bean >

    
< bean  id ="sessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
        
< property  name ="dataSource" >
            
< ref  bean ="dataSource"   />
        
</ property >

        
< property  name ="hibernateProperties" >
            
< props >
                
< prop  key ="hibernate.dialect" >
                    org.hibernate.dialect.MySQLInnoDBDialect
                
</ prop >
                
<!--  是否根据需要每次自动创建数据库  -->
                
< prop  key ="hibernate.hbm2ddl.auto" > update </ prop >
                
<!--  显示hibernate持久化操作时产生的SQL  -->
                
< prop  key ="hibernate.show_sql" > true </ prop >
                
<!--  将SQL格式化后再输出  -->
                
< prop  key ="hibernate.format_sql" > true </ prop >
            
</ props >
        
</ property >

        
<property name="mappingLocations">
            <list>
                <value>classpath*:/cn/edu/ujn/wsjx/model/*.hbm.xml</value>
                <value>classpath*:/org/jbpm/**/*.hbm.xml</value>
            </list>
        </property>
     </ bean >
</ beans >
上面代码的红色部分,<value>classpath*:/org/jbpm/**/*.hbm.xml</value> 是jbpm需要的所有映射文件,*为通配符。
4. 使用eclipse的jbpm插件图形化定义流程,把生成的三个文件打包成work.zip
5. 在spring中配置jbpm,applicationContext-jbpm.xml
<? xml version="1.0" encoding="utf-8" ?>
<!--  指定Spring配置文件的DTD信息  -->
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
    "http://www.springframework.org/dtd/spring-beans-2.0.dtd"
>
<!--  Spring配置文件的根元素  -->

< beans >

    
<!--  通过启动服务自动发布流程  -->
    
< bean  id ="jbpmConfiguration"  class ="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean" >
        
< property  name ="sessionFactory"  ref ="sessionFactory" />
        
< property  name ="configuration"  value ="classpath:jbpm.cfg.xml" />
        
        
< property  name ="processDefinitions" >
            
< list >
                
< ref  local ="workWorkflow" />
            
</ list >
        
</ property >
        
< property  name ="createSchema"  value ="false" />

    
</ bean >
    
    
< bean  id ="workWorkflow"  class ="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean" >
        
< property  name ="definitionLocation"  value ="classpath:jbpm/work/work.zip" />
    
</ bean >
    

    
< bean  id ="workTemplate"  class ="org.springmodules.workflow.jbpm31.JbpmTemplate" >
        
< constructor-arg  index ="0"  ref ="jbpmConfiguration" />
        
< constructor-arg  index ="1"  ref ="workWorkflow" />
    
</ bean >
    
    
</ beans >
可以看出,这里配置的是通过启动服务器,自动加载流程的发布。
6. 很重要的是,在web.xml中添加spring启动时加载文件
     < context-param >
        
< param-name > contextConfigLocation </ param-name >
        
< param-value >
            /WEB-INF/classes/spring/applicationContext.xml,/WEB-INF/classes/spring/applicationContext-*.xml,/WEB-INF/classes/spring/daoContext.xml
        
</ param-value >
    
</ context-param >

这里用到了重新编译后的spring-modules-jbmp31.jar包,更改后支持发布zip格式的定义,文件包含在后面的链接中, 可以下载下来参考WebRoot
后面会继续更新 手动发布流程定义 的文章

你可能感兴趣的:(把jbpm3整合进ssh中)