ssh+jbpm整合_第1頁(yè)
ssh+jbpm整合_第2頁(yè)
ssh+jbpm整合_第3頁(yè)
ssh+jbpm整合_第4頁(yè)
ssh+jbpm整合_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、簡(jiǎn)述 Jbpm工作流框架與現(xiàn)有ssh框架的集成工作其實(shí)很簡(jiǎn)單,但國(guó)內(nèi)外的資料太小,所以會(huì)在集成時(shí)走入太多誤區(qū),本文是在struts1.2,spring2.5,hibernate3.2上集成成功的詳細(xì)步驟。其中解決了,jbpm的訪問數(shù)據(jù)庫(kù)session與原有hibernate的session不同的問題,string-max大字段問題。完成了流程部署web及后臺(tái)程序。利用spring-modules-0.8當(dāng)中的spring31做為集成的橋梁(其實(shí)它已經(jīng)做好了集成,但文檔和實(shí)例實(shí)在是太簡(jiǎn)單)。 使用jbpm-starters-kit-3.1.4生成數(shù)據(jù)庫(kù)表及安裝eclipse圖形化配置插件 1下載

2、jbpm-starters-kit-3.1.4到其網(wǎng)站,包含所有需要的工具及jar包。 2數(shù)據(jù)庫(kù)的安裝以oracle為例,其它數(shù)據(jù)庫(kù)可按此例修改。 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ù)庫(kù)的連接屬性如下: # 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ù)庫(kù)的連接屬性如下: 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ù)庫(kù)的表已經(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ù)庫(kù)映射文件。放到項(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)配置。全部?jī)?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ī)頁(yè)面及程序 1 JSP頁(yè)面使用struts1.2,spring2.0,hibernate3.2框架。此為流程發(fā)布頁(yè)面。 請(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)入上傳流程主頁(yè)面 * 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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論