




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、簡述 Jbpm工作流框架與現(xiàn)有ssh框架的集成工作其實(shí)很簡單,但國內(nèi)外的資料太小,所以會(huì)在集成時(shí)走入太多誤區(qū),本文是在struts1.2,spring2.5,hibernate3.2上集成成功的詳細(xì)步驟。其中解決了,jbpm的訪問數(shù)據(jù)庫session與原有hibernate的session不同的問題,string-max大字段問題。完成了流程部署web及后臺(tái)程序。利用spring-modules-0.8當(dāng)中的spring31做為集成的橋梁(其實(shí)它已經(jīng)做好了集成,但文檔和實(shí)例實(shí)在是太簡單)。 使用jbpm-starters-kit-3.1.4生成數(shù)據(jù)庫表及安裝eclipse圖形化配置插件 1下載
2、jbpm-starters-kit-3.1.4到其網(wǎng)站,包含所有需要的工具及jar包。 2數(shù)據(jù)庫的安裝以oracle為例,其它數(shù)據(jù)庫可按此例修改。 2.1創(chuàng)建所需用戶及表空間,如果有了用戶和表空間就不需要了。 2.2 找到j(luò)bpm-starters-kit-3.1.4文件夾,在其下的jbpm文件夾的下級(jí)文件夾lib中加入oracle的驅(qū)動(dòng)包ojdbc14.jar. 2.3 在jbpmsrcresources文件夾下建立oracle文件夾, 將jbpmsrcresourceshsqldb里的perties和identity.db.xml文件copy到
3、剛剛建立的oracle文件夾當(dāng)中. 2.4 修改perties文件,修改目標(biāo)數(shù)據(jù)庫的連接屬性如下: # these properties are used by the build script to create # a hypersonic database in the build/db directory that contains # the jbpm tables and a process deployed in there hibernate.dialect=org.hibernate.dialect.OracleDialect h
4、ibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver hibernate.connection.url=jdbc:oracle:thin:2:1521:oracle hibernate.connection.username=dpf hibernate.connection.password=dpf hibernate.show_sql=true vider_class=org.hibernate.cache.HashtableCacheProvider 2.5
5、修改jbpmsrcconfig.fileshibernate.cfg.xml文件,同樣是配置數(shù)據(jù)庫的連接屬性如下: org.hibernate.dialect.OracleDialect oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:2:1521:oracle dpf dpf org.hibernate.cache.HashtableCacheProvider 2.6 修改jbpmbuild.deploy.xml文件.找到create.db項(xiàng)并進(jìn)行如下修改: 2.7 配置ant,在jbpm目錄執(zhí)行 ant create.db
6、 buildfile build.deploy.xml命令。 會(huì)有一些小錯(cuò)誤的提示,沒有關(guān)系數(shù)據(jù)庫的表已經(jīng)建立完成。 2.8 eclipse的圖形化配置插件安裝文件可以到j(luò)bpm-starters-kit-3.1.4jbpm-designer jbpm-gpd-featureeclipse下找到,需注意版本。 部署jbpm的jar包和moudle的jar包 1 把如下jar包放入WEB-INFlib文件夾下, spring-modules-jbpm31.jar可以在 spring-modules-0.8下找到,其它的都屬于jbpm工具包。 bsh-1.3.0.jar bsf.jar sprin
7、g-modules-jbpm31.jar jbpm-webapp-3.1.4.jar jbpm-identity-3.1.4.jar jbpm-3.1.4.jar 部署hbm文件到項(xiàng)目 1 在jbpm文件夾中找到所有的*.hbm.xml數(shù)據(jù)庫映射文件。放到項(xiàng)目的一個(gè)文件夾當(dāng)中。本例放到comgresoftsecuritymodelhbm文件夾中。并且在hibernate的sessionfactory建立時(shí),設(shè)置為相關(guān)路徑配置。 2 此文件需在spring管理的hibernate配置文件下修改,本例為 dataAccessContext-hibernate.xml,如下: org.hiberna
8、te.dialect.Oracle9Dialect true org.hibernate.cache.EhCacheProvider true classpath*:/com/gresoft/security/model/hbm/ 設(shè)置大字段string-max 1 此文件需在spring管理的hibernate配置文件下修改,本例為 dataAccessContext-hibernate.xml,如下: 配置configration、template 說明: jbpmConfiguration是根據(jù)springmodules所提供的 LocalJbpmConfigurationFactory
9、Bean進(jìn)行配置,其集成好對(duì)jbpmConfiguration的管理。在系統(tǒng)使用時(shí)JbpmConfiguration需調(diào)用jbpmTemplate的jbpmTemplate.getJbpmConfiguration()方法得到。 1 此文件需在spring管理的hibernate配置文件下修改,本例為 dataAccessContext-hibernate.xml,如下: 2 增加類路徑中jbpm.cfg.xml文件,可以根據(jù) jbpm-starters-kit-3.1.4jbpmsrcjava.jbpmorgjbpmdefault.jbpm.cfg.xml 復(fù)制后修改。本例放到/datasq
10、l/jbpm.cfg.xml下。上面配置文件有相關(guān)配置。全部內(nèi)容如下: ! - 增加如下內(nèi)容 - !- 不再使用- 過濾器的設(shè)置與建立 過濾器的建立是為了保證一個(gè)session的正常工作。 1 web.xml中的修改 本例中描述如下: JbpmContextFilter ponents.jbpm.JbpmContextHolder 2建立對(duì)應(yīng)的類文件 本例中描述如下: package ponents.jbpm; import java.io.IOException; import java.io.Serializable; impor
11、t java.security.Principal; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import org.jbpm
12、.JbpmConfiguration; import org.jbpm.JbpmContext; import org.springframework.web.context.WebApplicationContext; public class JbpmContextHolder implements Filter, Serializable private static final long serialVersionUID = 1L; String jbpmConfigurationResource = null; String jbpmContextName = null; boole
13、an isAuthenticationEnabled = true; public void init(FilterConfig filterConfig) throws ServletException / get the jbpm configuration resource this.jbpmConfigurationResource = filterConfig .getInitParameter(jbpm.configuration.resource); / get the jbpm context to be used from the jbpm configuration thi
14、s.jbpmContextName = filterConfig .getInitParameter(); if (jbpmContextName = null) jbpmContextName = JbpmContext.DEFAULT_JBPM_CONTEXT_NAME; / see if authentication is turned off String isAuthenticationEnabledText = filterConfig .getInitParameter(authentication); if (isAuthenticationE
15、nabledText != null) & (disabled.equalsIgnoreCase(isAuthenticationEnabledText) isAuthenticationEnabled = false; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException String actorId = null; / see if we can get
16、 the authenticated swimlaneActorId if (servletRequest instanceof HttpServletRequest) HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; Principal userPrincipal = httpServletRequest.getUserPrincipal(); if (userPrincipal != null) actorId = userPrincipal.getName(); JbpmContext
17、 jbpmContext = getJbpmConfiguration(servletRequest) .createJbpmContext(jbpmContextName); try if (isAuthenticationEnabled) jbpmContext.setActorId(actorId); filterChain.doFilter(servletRequest, servletResponse); finally jbpmContext.close(); /* * 從spring獲取JbpmConfiguration的bean加載方式 */ protected JbpmCon
18、figuration getJbpmConfiguration( ServletRequest servletRequest) WebApplicationContext webApplicationContext = (WebApplicationContext) (HttpServletRequest) servletRequest) .getSession() .getServletContext() .getAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); JbpmConfiguratio
19、n jbpmConfiguration = (JbpmConfiguration) webApplicationContext .getBean(jbpmConfiguration); / 得到業(yè)務(wù)Bean(在這里是你需要注入的bean) System.out.println(-); System.out.println(jbpmconfiguration對(duì)象化= + jbpmConfiguration.toString(); System.out.println(-); return jbpmConfiguration; public void destroy() 編寫發(fā)布流程定義xml的人
20、機(jī)頁面及程序 1 JSP頁面使用struts1.2,spring2.0,hibernate3.2框架。此為流程發(fā)布頁面。 請(qǐng)選擇要發(fā)布的流程文件 2 后臺(tái)對(duì)應(yīng)類 /* * 文件名: JbpmAction.java * 版本: * 描述: * 版權(quán)所有: * / * 創(chuàng)建者: 沙振中 * 創(chuàng)建日期: Dec 27, 2007 * 修改者: * 修改日期: * 修改說明: */ package com.gresoft.security.web; import java.io.InputStream; import javax.servlet.http.HttpServletRequest; imp
21、ort javax.servlet.http.HttpServletResponse; import mons.beanutils.DynaBean; import mons.logging.Log; import mons.logging.LogFactory; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.Ac
22、tionMapping; import org.apache.struts.upload.FormFile; import org.jbpm.JbpmContext; import org.jbpm.graph.def.ProcessDefinition; import org.springmodules.workflow.jbpm31.JbpmTemplate; import mons.core.web.StrutsAction; public class JbpmAction extends StrutsAction private static Log lo
23、g = LogFactory.getLog(JbpmAction.class); private JbpmTemplate jbpmTemplate; public void setjbpmTemplate(JbpmTemplate jbpmTemplate) this.jbpmTemplate = jbpmTemplate; /* * 進(jìn)入上傳流程主頁面 * param mapping * param form * param request * param response * return */ public ActionForward index(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) return mapping.findForward(delpoyindex); /* * 上傳流程文件 * param mapping * param form * param request * param respo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【中考模擬】2025年浙江省杭州公益中學(xué)中考數(shù)學(xué)三模試卷(含解析)
- 在線教育教師信息技術(shù)應(yīng)用能力提升培訓(xùn)心得體會(huì)
- 急診科院前急救與搶救流程銜接
- 特級(jí)建筑集團(tuán)資金管理副總職責(zé)
- 2025年秋季初中語文教研組活動(dòng)計(jì)劃
- 小學(xué)一年級(jí)道德與法治學(xué)科拓展計(jì)劃
- 以延津一中為例探究任務(wù)型教學(xué)法在高中英語閱讀教學(xué)中的應(yīng)用與革新
- 以市場(chǎng)為翼:我國體育舞蹈賽事運(yùn)作模式的創(chuàng)新與突破
- 以實(shí)驗(yàn)為翼翱翔化學(xué)之空:高中化學(xué)實(shí)驗(yàn)探究教學(xué)的深度剖析與實(shí)踐
- 以實(shí)證為翼探高中英語認(rèn)知詞匯學(xué)習(xí)策略之徑
- 課題申報(bào)參考:拔尖創(chuàng)新人才貫通式培養(yǎng)中的高中-大學(xué)銜接機(jī)制研究
- DB36-T 2070-2024 疼痛綜合評(píng)估規(guī)范
- 2024年05月陜西秦農(nóng)農(nóng)村商業(yè)銀行股份有限公司數(shù)字化及金融科技勞務(wù)派遣人員招考筆試歷年參考題庫附帶答案詳解
- 醫(yī)藥代表的臨床經(jīng)驗(yàn)分享
- 華中農(nóng)業(yè)大學(xué)《物聯(lián)網(wǎng)工程》2022-2023學(xué)年第一學(xué)期期末試卷
- 電信總經(jīng)理談服務(wù)
- 防雷應(yīng)急演練方案
- 半結(jié)構(gòu)化面試題100題
- 稅務(wù)局個(gè)人所得稅業(yè)務(wù)培訓(xùn)
- 紡織廠承包轉(zhuǎn)讓協(xié)議書范文范本
- 蘆笛艾青詩選課件
評(píng)論
0/150
提交評(píng)論