Activiti教程二

Activiti教程二一搭建环境1.1JDK6+1.2Ant1.8.1+1.3Eclipse3.7+1.4Activiti-eclipsedesigner插件安装1.4.1先安装GEF插件1.4.2安装SVN插件1.4.3安装Maven插件1.4.4最后安装Activiti-eclipsedesigner二开始activiti5.12.1的第一个demo

大家好,又见面了,我是你们的朋友全栈君。

一搭建环境

1.1 JDK 6+

1.2 Ant 1.8.1+

1.3 Eclipse 3.7+

1.4 Activiti -eclipse designer插件安装

1.4.1 先安装GEF插件

1.4.2 安装SVN插件

1.4.3安装Maven插件

1.4.4 最后安装Activiti -eclipse designer

二开始activiti 5.12.1的第一个demo

2.1 建立activiti-demo工程,选择Activiti Project

2.2 activiti-demo工程的数据库整合为MySQL

2.3 设计activiti-demo工程的流程

 

以上详细描述参照Activiti 简易教程一 version5.10(http://blog.csdn.net/yangyi22/article/details/9225849

测试类代码 DemoProcessTest.java

  1. package main.java;  
  2.   
  3. import java.io.FileInputStream;  
  4. import java.util.List;  
  5. import org.activiti.engine.HistoryService;  
  6. import org.activiti.engine.ProcessEngine;  
  7. import org.activiti.engine.ProcessEngines;  
  8. import org.activiti.engine.RepositoryService;  
  9. import org.activiti.engine.RuntimeService;  
  10. import org.activiti.engine.TaskService;  
  11. import org.activiti.engine.history.HistoricProcessInstance;  
  12. import org.activiti.engine.runtime.ProcessInstance;  
  13. import org.activiti.engine.task.Task;  
  14.   
  15. public class DemoProcessTest {  
  16.     // diagrams实际路径  
  17.         private static String realPath =   
  18.                 “D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]” +  
  19.                 “\\activiti-512demo\\src\\main\\resources\\diagrams”;  
  20.         public static void main(String[] args) throws Exception {  
  21.             // 创建 Activiti流程引擎  
  22.             //方式一 自动寻找activiti.cfg.xml  
  23.             ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();  
  24.               
  25.             //方式二 指定加载activiti.cfg.xml  
  26. //          ProcessEngine processEngine = ProcessEngineConfiguration  
  27. //                  .createProcessEngineConfigurationFromResource(“activiti.cfg.xml”)  
  28. //                  .buildProcessEngine();  
  29.               
  30.             // 取得 Activiti 服务  
  31.             RepositoryService repositoryService = processEngine.getRepositoryService();  
  32.             RuntimeService runtimeService = processEngine.getRuntimeService();  
  33.   
  34.             // 部署流程定义  
  35.             repositoryService  
  36.                     .createDeployment()  
  37.                     .addInputStream(“DemoProcess.bpmn”,new FileInputStream(realPath + “\\DemoProcess.bpmn”))  
  38.                     .addInputStream(“DemoProcess.png”new FileInputStream(realPath + “\\DemoProcess.png”))  
  39.                     .deploy();  
  40.               
  41.             // 启动流程实例  
  42.             ProcessInstance instance = processEngine  
  43.                      .getRuntimeService().startProcessInstanceByKey(“DemoProcess”);  
  44.             String procId = instance.getId();  
  45.             System.out.println(“procId:”+ procId);  
  46.               
  47.             // 获得第一个任务  
  48.             TaskService taskService = processEngine.getTaskService();  
  49.             List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey(“firstTask”).list();  
  50.             for (Task task : tasks) {  
  51.                 System.out.println(“Following task is: taskID -“ +task.getId()+” taskName -“+ task.getName());  
  52.                 // 认领任务  
  53.                 taskService.claim(task.getId(), “testUser”);  
  54.             }  
  55.                
  56.             // 查看testUser 现在是否能够获取到该任务  
  57.             tasks = taskService.createTaskQuery().taskAssignee(“testUser”).list();  
  58.             for (Task task : tasks) {  
  59.                 System.out.println(“Task for testUser: “ + task.getName());  
  60.                 // 完成任务  
  61.                 taskService.complete(task.getId());  
  62.             }  
  63.             System.out.println(“Number of tasks for testUser: “  
  64.                     + taskService.createTaskQuery().taskAssignee(“testUser”).count());  
  65.               
  66.   
  67.             // 获取并认领第二个任务  
  68.             tasks = taskService.createTaskQuery().taskDefinitionKey(“secondTask”).list();  
  69.             for (Task task : tasks) {  
  70.                 System.out.println(“Following task is : taskID -“ +task.getId()+” taskName -“+ task.getName());  
  71.                 taskService.claim(task.getId(), “testUser”);  
  72.             }  
  73.               
  74.             //完成第二个任务结束结束流程  
  75.             for (Task task : tasks) {  
  76.                 taskService.complete(task.getId());  
  77.             }  
  78.               
  79.             // 核实流程是否结束  
  80.             HistoryService historyService = processEngine.getHistoryService();  
  81.             HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();  
  82.             System.out.println(“Process instance end time: “ + historicProcessInstance.getEndTime());  
  83.         }  
  84.   
  85. }  

 

 依赖jar包说明

         Activiti5.10以后的版本已经去掉第三方的jar包,从官网下载的Activiti5.12.1的依赖包仅仅包含activiti相关的jar,目录libs下的jar包如下:

        Activiti教程二

        Activiti教程二

        Activiti教程二

 

运行测试代码,会发现少了很多依赖包,我的处理的方法是直接从5.10版本导入缺少的jar包,导入后测试代码通过。

jar包:

        Activiti教程二

         Activiti教程二

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162650.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入浅出的意思是(v4)

    因为工作原因,项目中经常遇到目标检测的任务,因此对目标检测算法会经常使用和关注,比如Yolov3、Yolov4算法。当然,实际项目中很多的第一步,也都是先进行目标检测任务,比如人脸识别、多目标追踪、REID、客流统计等项目。因此目标检测是计算机视觉项目中非常重要的一部分。从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗。在此,大白将项目中,需要了解的Yolov3、Yolov4系列相关知识点以及相关代码进行完整的汇总,希望和大家

    2022年4月12日
    61
  • 2022.01 激活码【最新永久激活】

    (2022.01 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2KLK…

    2022年4月1日
    70
  • Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend)问题的解决「建议收藏」

    Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend)问题的解决「建议收藏」环境:Ubuntu18.04-amd64问题描述:在ubuntu下安装mysql时,进行apt-get操作,出现了如下报错:参考了一篇博客,已经解决问题。现将步骤记录下来。解决办法:第一种情况: 进程中存在与apt相关的正在运行的进程: 首先检查是否在运行apt,apt-get相关的进程psaux|grep-iapt如果存在与apt相关的正在运行的进程…

    2022年10月7日
    0
  • j-link接口定义及实际使用[通俗易懂]

    j-link接口定义及实际使用[通俗易懂]使用j-link下载程序或者在线调试的时候,有两种模式:JTAG和SWD可以在keil中选择:下面是两种模式下,分别用的接口引脚:推荐使用SWD模式,因为更省引脚而且调试功能不受影响。在SWD模式下,实际只需要4个IO口就可以了,包括下载程序和在线调试。分别为:PA13/JTMS/SWDIO、PA14/JTCK/SWCLK、VCC、GND

    2022年5月28日
    104
  • GridView使用RenderControl取得HTML的问题[通俗易懂]

    GridView使用RenderControl取得HTML的问题[通俗易懂]
    如果想在CodeFile中取得GridView结果的HTML内容,首先会遇到这样的错误讯息:
     型别’GridView’的控制项’GridView1’必须置于有runat=server的表单标记之中。
    这个问题,可以在您的CodeFile中加入以下这段来解决Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)      ‘处理’GridView’的控制项’GridView’必须置

    2022年7月20日
    10
  • FM模型

    FM模型一、FM模型的意义1、传统模型的缺点忽略了特征之间的联系特征高维、稀疏,容易爆炸2、什么是FM模型FM就是FactorMachine,因子分解机。FM通过对两两特征组合,引入交叉项特征,提高模型得分;其次是高维灾难,通过引入隐向量(对参数矩阵进行矩阵分解),完成对特征的参数估计。二、FM模型1、对特征进行组合一般的线性模型y=ω0+∑i=1nwixiy={\om…

    2022年4月3日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号