




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、工作流Activiti的學習總結(五)activiti的API和虛擬工作流測試工作流Activiti的學習總結(五)activiti的API和虛擬工 作流測試activiti的API在activiti引擎中,你可以通過多種方式 獲取ProcessEngine對象,從ProcessEngine中獲取各種服務對象, 從而訪問工作流/BPM方法。ProcessEngine和她的各種服務均為線程安全性服務。在整個項目中每一種服務僅需要保持一個引用。ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEn gine();RuntimeSe
2、rviceruntimeService=processEngine.getRuntimeSe rvice();RepositoryServicerepositoryService=processEngine.getRepo sitoryService();TaskServicetaskService=processEngine.getTaskServi ce();ManagementServicemanagementService=processEngine.getMa nagementService();IdentityServiceidentityService=processEngine
3、.ge tIdentityService();HistoryServicehistoryService=processEngine.get HistoryService();ServiceService=processEngine.getService();針 對 ProcessEngine 的說明:ProcessEngine.getDefaultProcessEngine() 在第一個被調(diào)用的時候初始化并創(chuàng)建一個流程引擎,在以后的調(diào) 用中返回同一個引用的流程引擎對象。針對流程引擎中初始化方法為ProcessEngine.init().銷毀方法 的方法為ProcessEngine.destro
4、y().ProcessEngineConfiguration.createProcess EngineConfigurationFromStream(Stream).buildProcessEngine()倉寸 建工作流引擎,ProcessEngine見掃描所有的activiti.cfg.xml文件 和 activiti-context.xml 文件。異常策略:在 activiti 中 org.activiti.engine.ActivitiException 類 為所有異常的基類。ActivitiException為非檢查性異常。例如:*Calledwhenthetaskissuccessf
5、ullycuted.*paramtaskIdtheidofthe tasktocomplete,cannotbenull.*throwsActivitiExceptionwhennotas kexistswiththegivenid.*/voidcomplete(StringtaskId);其他異常類如 下:ActivitiWrongDbException:ThrownwhentheActivitienginediscovers amismatchbetweenthedatabaseschemaversionandtheengineversion(s chema 版本和引擎版本不匹配報的錯 誤
6、).ActivitiOptimisticLockingException:Thrownwhenanoptimisticlo ckingoccursinthedatastorecausedbyconcurrentaccessofthesamedatae ntry.ActivitiClassLoadingException:Thrownwhenanclassrequestedto loadwasnotfoundorwhenerroroccurredwhileloadingit(eg.JavaDelegat es,TaskListeners,.).Activiti 的測試:activiti 的測試支
7、持 Junit3 和 Junit4的單元測試。在 junit3 的單元測試中,org.activit.engine.test.ActivitiTestCase 必須被繼承。在setup ()方法中,流程引擎要初始化加載classpath下默認 的activi.cfg.xml資源文件。針對不同的配置文件可能需要重新getConfigurationResource() 方法。在 ActivitiTestCase 中 可 以 使 用 org.activiti.engine.test.Deployment 注解方法。publicclassMyBusinessProcessTestextendsActi
8、vitiTestCaseDeplo ymentpublicvoidtestSimpleProcess()runtimeService.startProcessIns tanceByKey(simpleProcess“)Tasktask=taskService.createTaskQuer y().singleResult();assertEquals(MyTask“,task.getName()taskSplet e(task.getId();assertEquals(0,runtimeService.createProcessInstance Query().count();在junit4中
9、org.activiti.engine.test.ActivitiRuleRule 被采用。通過ActivitiRule中getter方法獲取相關的服務。在 Junit4 同樣功能的單元測試如下:publicclassMyBusinessProcessTestRulepublicActivitiRuleactivitiRule=newActivitiRule();TestDeploymentpublicvoidruleUsageE xample()RuntimeServiceruntimeService=activitiRule.getRuntimeS ervice()runtimeServi
10、ce.startProcessInstanceByKey(ruleUsage“)Ta skServicetaskService=activitiRule.getTaskService();Tasktask=taskSe rvice.createTaskQuery().singleResult()assertEquals(MyTask“,task.getName();taskSplete(task.getId();assertEquals(0,runtimeService.createProcessInstanceQuery().count();在 web 環(huán)境中流程引擎的 使用:由于proce
11、ssEngine是一個線程安全性的對象可以容易在 多個線程中被共享。在web容器啟動加載創(chuàng)建工作流引擎,在容器銷毀銷毀工作 流引擎??梢許ervletContextListener實現(xiàn)相關的功能。publicclassProcessEnginesServletContextListenerimplementsServlet ContextListenerpublicvoidcontextInitialized(ServletContextEvents ervletContextEvent)ProcessEngines.init();publicvoidcontextDestr oyed(Ser
12、vletContextEventservletContextEvent)ProcessEngines.des troy();Activiti 提 供 模 擬 流 程 的 APIPvmProcessDefinitionprocessDefinition=newProcessDefinition Builder().createActivity(a).initial().behavior(newWaitState().trans ition(b).endActivity().createActivity(b).behavior(newWaitState( ).transition(c).endAc
13、tivity().createActivity(c).behavior(newWai tState().endActivity().buildProcessDefinition();PvmProcessInstance processInstance=processDefinition.createProcessInstance();processI nstance.start();PvmcutionactivityInstance=processInstance.findcutio n(“a)assertNotNull(activityInstance)activityInstance.si
14、gnal(null,n ull)activityInstance=processInstance.findcution(“b“)assertNotNull( activityInstance);activityInstance.signal(null,null);activityInstance=p rocessInstance.findcution(“c“)assertNotNull(activityInstance)activiti 中表達式 activiti 使用 UEL(UnifiedExpressionLanuage)標記解析 配置文件中表達式。UEL是EE6特性。activiti 中 Expressions 支持兩種方式: 1.Valueexpression:在 activiti中Delegatecution是在上下文中是使用“cution”在表達式上 下文被使用的。所有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【寧波】2025年上半年浙江寧波市北侖區(qū)(開發(fā)區(qū))招聘事業(yè)單位工作人員81人筆試歷年典型考題及考點剖析附帶答案詳解
- 2025福建南平市武夷新區(qū)城市發(fā)展集團有限公司招聘13人筆試參考題庫附帶答案詳解
- 2025廣西百色市德??h惠保投資發(fā)展有限公司招聘16人筆試參考題庫附帶答案詳解
- 2025內(nèi)蒙古鄂爾多斯中天合創(chuàng)能源有限責任公司煤炭分公司招聘20人筆試參考題庫附帶答案詳解
- 遼寧鐵嶺歷年中考作文題(2010-2023)
- 廠房股份并購與員工安置協(xié)議
- 城市更新項目現(xiàn)場調(diào)研合同協(xié)議
- 緊急救援車隊土石方運輸服務協(xié)議
- 汽車美容保養(yǎng)質(zhì)押擔保合同示范
- 體育館場地租賃及全民健身活動合同范本
- 慢性便秘腸道微生態(tài)臨床應用中國專家共識2024版解讀
- 《航空材料無損檢測》課件-航空金屬材料-鈦及鈦合金
- 跟著音樂游中國(廣州大學)知到智慧樹章節(jié)答案
- 缺血性腸病病例
- 電大《納稅籌劃》考試題庫小抄
- 2024年新人教版五年級數(shù)學下冊《第4單元分數(shù)的意義和性質(zhì) 整 理和復習》教學課件
- 如何正確呼叫120
- 古詩詞誦讀《客至》課件+2023-2024學年統(tǒng)編版高中語文選擇性必修下冊
- 孟母三遷故事繪本課件
- 2024年黑龍江省綏化市中考物理二模試卷(含答案)
- GB/T 44265-2024電力儲能電站鈉離子電池技術規(guī)范
評論
0/150
提交評論