唯美古典
          Java入門,Struts,Hibernate,Spring,Groovy,Grails
          posts - 7,comments - 10,trackbacks - 0

          基本步驟

          1、集成JBPM到系統(tǒng)(第一步:創(chuàng)建數(shù)據(jù)庫表)

          * 拷貝相關的依賴包到WEB-INF/lib下面(bsh.jar/ jcr-1.0.jar/ jbpm-identity.jar/ jbpm-jpdl.jar)

              * 修改hibernate.cfg.xml,添加JBPM的映射配置,以及緩存屬性的配置,可從jbpm包下的config文件夾下參考其hibernate.cfg.xml文件

              *在使用Jbpm工作流引擎的時候,Hibernate配置文件一定要加上屬性

          <property name="hibernate.hbm2ddl.auto">update</property>

          Hbm2dll.auto是數(shù)據(jù)庫表和類自動連接更新

              * 因為JBPM中的User對象與OA系統(tǒng)中的User對象名稱上有沖突,所以需要修改系統(tǒng)中User映射的auto-import屬性為"false"。(參考User.hbm.xml)

              * 當修改了User映射的auto-import="false"之后,需要在查詢User對象的時候,使用其全路徑類名(請參考UserManagerImpl.java)

              * 啟動Tomcat,應能正確創(chuàng)建JBPM的所有數(shù)據(jù)庫表

          2、 集成JBPM到系統(tǒng)(第二步:與Spring集成)

              * 集成JBPM與spring,需要用到第三方的集成包:spring-modules-0.8.zip

              * 將其中的spring-modules-jbpm31.jar拷貝到WEB-INF/lib下面即可

              * 集成JBPM與Spring的方法是:將JbpmConfiguration對象的創(chuàng)建交給Spring來完成

              * 所以,需要在spring配置文件中配置JbpmConfiguration對象的創(chuàng)建

                  <!-- 配置JbmpConfiguration -->

                  <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">

                      <property name="configuration" value="classpath:jbpm.cfg.xml"></property>

                  </bean>

              * 這時候,需要jbpm.cfg.xml,這是JBPM的配置文件,我們可以從:JBPM_HOME"src"jpdl"org"jbpm目錄下拷貝default.jbpm.cfg.xml文件,并重新命名為jbpm.cfg.xml

          3、集成JBPM到系統(tǒng)(第三步:如何實現(xiàn)業(yè)務邏輯類,請參考WorkflowManagerImpl.java)

              * 用到jbpmConfiguration對象的時候,需要注入 (<property name="jbpmConfiguration" ref="jbpmConfiguration"></property>)

              * 當我們使用JbpmContext對象來操縱JBPM的時候,需要將JbpmContext的HibernateSession對象設置為當前的HibernateSession對象

                      private JbpmContext getContext(){

                          JbpmContext context = jbpmConfiguration.createJbpmContext();

                          context.setSession(getSession());

                          return context;

                      }

          4、實現(xiàn)WorkflowManagerImpl

              - 理解基本的JBPM操作:流程定義、流程實例、任務列表、流向

          Jbpmssh整合常出現(xiàn)的問題

          1、因為JBPM中的User對象與OA系統(tǒng)中的User對象名稱上有沖突,所以需要修改OA系統(tǒng)中User映射的auto-import屬性為"false"。(參考User.hbm.xml

          * 當修改了User映射的auto-import="false"之后,需要在查詢User對象的時候,使用其全路徑類名(請參考UserManagerImpl.java

          2、在使用Jbpm工作流引擎的時候,Hibernate配置文件一定要加上屬性

          <property name="hibernate.hbm2ddl.auto">update</property>

          Hbm2dll.auto是數(shù)據(jù)庫表和類自動連接更新

          3、jbpmSpring整合報錯:

          org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jbpmConfiguration' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: a beanFactoryReference already exists for key jbpmConfiguration

          解決方法:去掉struts-config.xml文件中的org.springframework.web.struts.ContextLoaderPlugIn,也就是與Spring整合的插件



          唯美古典的工作室
          posted on 2009-11-29 13:52 唯美古典 閱讀(3984) 評論(6)  編輯  收藏 所屬分類: SSH整合

          FeedBack:
          # re: Jbpm整合SSH詳解
          2009-11-30 15:50 | CoderDream
          應該是SSH2吧,即Struts2+Spring+Hibernate!
          感謝分享!  回復  更多評論
            
          # re: Jbpm整合SSH詳解
          2009-11-30 16:35 | 唯美古典
          @CoderDream
          SSH,當然SSH2也ok  回復  更多評論
            
          # re: Jbpm整合SSH詳解
          2009-12-01 12:14 | 創(chuàng)意禮物批發(fā)
          非常好的文章,謝謝樓主分享?。?nbsp; 回復  更多評論
            
          # re: Jbpm整合SSH詳解
          2009-12-01 20:06 | 唯美古典
          @創(chuàng)意禮物批發(fā)
          博客剛開始,希望以后發(fā)的東西也能對大家有用,我在ssh整合jbpm時碰到了第三個錯誤,在網(wǎng)上搜了下也沒答案,結果自己整理出來,希望對大家有用  回復  更多評論
            
          # re: Jbpm整合SSH詳解
          2012-05-30 17:52 | sensen
          你這個是struts1把.  回復  更多評論
            
          # re: Jbpm整合SSH詳解[未登錄]
          2012-07-02 19:06 | 哇哈哈
          @唯美古典
          我也報了第三個錯誤 ,,,可我的框架是hibernate+spring。沒有用到struts啊。更沒有什么struts.xml的文件。
            回復  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 胶南市| 新野县| 炎陵县| 陆河县| 苍南县| 宁夏| 建水县| 新余市| 德安县| 白山市| 辽中县| 石河子市| 汉沽区| 呼图壁县| 景谷| 三台县| 法库县| 丹巴县| 大埔区| 寻乌县| 仪陇县| 丹凤县| 法库县| 集安市| 安阳县| 衡山县| 灌阳县| 渭南市| 大荔县| 印江| 马公市| 清水县| 彭阳县| 玛多县| 台北县| 中西区| 罗定市| 高要市| 宁海县| 隆化县| 琼结县|