下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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() 在第一个被调用的时候初始化并创建一个流程引擎,在以后的调 用中返回同一个引用的流程引擎对象。针对流程引擎中初始化方法为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 环境中流程引擎的 使用:由于proce
11、ssEngine是一个线程安全性的对象可以容易在 多个线程中被共享。在web容器启动加载创建工作流引擎,在容器销毁销毁工作 流引擎。可以ServletContextListener实现相关的功能。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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-宁夏-宁夏机械冷加工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-天津-天津房管员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-吉林-吉林林木种苗工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-北京-北京收银员一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-云南-云南地图绘制员二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-上海-上海工程测量工三级(高级工)历年参考题库含答案详解
- 2026一级建造师-建设工程经济(官方)-建设工程估价1参考试题库历年考点答案详解
- 2026离岸人民币债券市场发展历程现状和国际比较分析报告
- -七年级上数学期末复习测试二
- 《IS0 14001-2026环境管理体系 要求及使用指南》之8-2:8运行 -8.2应急准备和响应专业解读与实施指南(雷泽佳编写2026B0)
- 一体化消防泵房水池施工方案
- 脊柱骨折的急救处理措施
- 兼职安全员培训证课件
- 中国2型糖尿病运动治疗指南(2024版)
- 2025年羽毛球裁判员理论考试试题大全(附答案)
- CJ/T 283-2017偏心半球阀
- 2026届高中语文一轮复习板块五 文言文阅读 考点突破学案27 理解文言实词(一)-词分古今义究源流 (共107张) +学案+练习(含解析)
- 超市员工档案管理制度
- 高考英语3500词顺序版
- YYT 0644-2008 超声外科手术系统基本输出特性的测量和公布
- 胸腰椎椎管狭窄的护理查房
评论
0/150
提交评论