Java瑣事

          -I am not alone
          posts - 54, comments - 30, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          把jbpm3整合進ssh中

          Posted on 2011-04-26 11:30 石子路口 閱讀(2159) 評論(0)  編輯  收藏 所屬分類: 工作流
               網上有好多關于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
          后面會繼續更新 手動發布流程定義 的文章
          主站蜘蛛池模板: 蒲城县| 鹤峰县| 泰安市| 招远市| 廊坊市| 和静县| 景泰县| 定西市| 济阳县| 瑞昌市| 陇南市| 敖汉旗| 邛崃市| 米易县| 临朐县| 莱州市| 黑水县| 临澧县| 如东县| 邯郸市| 天峻县| 旺苍县| 铁岭市| 南和县| 曲靖市| 炉霍县| 沈阳市| 扬州市| 威远县| 柏乡县| 汝州市| 察隅县| 依兰县| 宁明县| 河北省| 通辽市| 柯坪县| 屏东县| 布尔津县| 扎鲁特旗| 三门县|