Activiti 简易教程「建议收藏」

Activiti 简易教程「建议收藏」一搭建环境1.1  JDK6+activiti运行在版本6以上的JDK上。转到OracleJavaSE下载页面,点击按钮“下载JDK”。网页中也有安装说明。要核实安装是否成功,在命令行上运行java–version。将打印出安装的JDK的版本。1.2  Ant1.8.1+从Ant[http://ant.apache.org/bindownload.c

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

一搭建环境

1.1   JDK 6+

activiti 运行在版本 6以上的 JDK上。转到 Oracle Java SE下载页面,点击按钮“下载 JDK”。网页中也有安装说明。要核实安装是否成功,在命令行上运行 java–version。将打印出安装的 JDK的版本。

1.2   Ant 1.8.1+

从 Ant[http://ant.apache.org/bindownload.cgi]下载页面下载最新稳定版的 Ant。解压文件,确保其 bin文件夹在操作系统的 path 下。在命令行上运行 ant–version 来检查 Ant是否安装成功。成功将打印安装的 Ant版本。

1.3   Eclipse 3.7+

从 Eclipse的下载页面下载 Eclipse Classic(或Eclipse JEE)版的 eclipse。解压下载的文件,然后就可以运行 eclipse路径下的 eclipse 文件了。

下载地址:http://www.eclipse.org/downloads/packages/release/indigo/sr2

1.4   Activiti -eclipse designer插件安装

         在安装Activiti -eclipse designer插件前先安装maven插件,m2e(eclipse)插件在Install New SoftWare安装时会出现些问题,按以下步骤安装即可。

1.4.1 先安装GEF插件

maven插件安装的时候会依赖这个插件,在Eclipse -> help -> Install New SoftWare中安装,update site:http://download.eclipse.org/tools/gef/updates/interim/

1.4.2 安装SVN插件

在Eclipse -> help -> Install New SoftWare中安装,update site:http://subclipse.tigris.org/update_1.6.x

1.4.3安装Maven插件

方式一:在线安装

         在Eclipse -> help -> Install New SoftWare中安装,update site:http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/m2e/1.5.0/N/LATEST/

顺便eclipse m2e支持site:http://www.eclipse.org/m2e/download/

         如在线安装不成功,报[the selected did not contain any resources that can run on server maven project]错误,建议采用方式二安装。

方式二:本地安装

         下载maven和 eclipse-maven3-plugin插件(eclipse-maven3-plugin为本人CSDN上传)

Maven site: http://ant.apache.org/bindownload.cgi

eclipse-maven3-plugin site: http://download.csdn.net/detail/yangyi22/5663245

         在eclipse目录下建立myplugins目录,将eclipse-maven3-plugin解压后文件复制进去,建立links目录,新建maven.link文件(名字随意取)添加文本:

path=…/eclipse/myplugins/maven,即让eclipse启动时去寻找myplugins中的插件,如本人安装的路径:path=D:/Java~coding~site /eclipse[indigo-jee]/eclipse/myplugins/maven

1.4.4 最后安装Activiti -eclipse designer

打开 HelpàInstall New Software。在如下面板中,点击Add按钮,然后填入下列字段:lName:Activiti BPMN 2.0 designer

l Location:http://activiti.org/designer/update/

 Activiti 简易教程「建议收藏」

安装成功后,新建activiti项目,视图如下:

 Activiti 简易教程「建议收藏」

安装m2eclipse插件后,重启Eclipse,如提示:

Eclipse is running in a JRE, but a JDK is required

  Some Maven plugins may not work when importing projects or updating source folders.

需要修改eclipse.ini文件,新增一项配置

-vm配置项必须在–vmargs配置项前,是因为执行到-vmargs配置项已经选择了一个默认的JVM了。

所以在–vmargs前面加上这一句:

-vm  

C:/Program Files/Java/jdk1.6.0_20/bin/javaw.exe 

二开始activiti 5.10的第一个demo

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

 Activiti 简易教程「建议收藏」

创建成功后的项目:

 Activiti 简易教程「建议收藏」

给activiti-demo项目添加activiti依赖包,项目右键Build Path->Configure Build Path->libraries -> Add External Jars选中…\activiti-5.10\setup\files\dependencies\libs下所有包添加即可。

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

         将…\activiti-5.10\setup\build\activiti-cfg目录下的activiti.cfg.xml配置文件复制到项目src\main\resources目录下,修改数据库配置如下:

<!– Database configurations –>

    <propertyname=“jdbcUrl”

value=“jdbc:mysql://localhost:3306/test?autoReconnect=true”/>

    <propertyname=“jdbcDriver”

       value=“com.mysql.jdbc.Driver”/>

    <propertyname=“jdbcUsername”value=“root”/>

    <propertyname=“jdbcPassword”value=“root”/>

    <!– Database configurations –>

    <propertyname=“databaseSchemaUpdate”value=“true”/>

    <!– job executor configurations –>

    <propertyname=“jobExecutorActivate”value=“false”/>

2.3 设计activiti-demo工程的流程

在该项目的src/main/resource/diagrams下右键创建Activiti diagram,文件名为:DemoProcess.bpmn。

Activiti 简易教程「建议收藏」

 –>

Activiti 简易教程「建议收藏」

 

此时进入Activiti Diagram Editor,在空白处点一下,下边属性栏中设置id和name,id就是这个流程的key,后边启动流程的时候使用到。

Activiti 简易教程「建议收藏」

 

注意:Activiti 5.8升级到5.9以后,xxx.bpmn20.xml和xxx.png已不默认生成,仅仅是生成xxx.bpmn文件, xxx.bpmn中的定义内容就如xxx.bpmn20.xml一样。

        另外,快捷菜单:“Create deployment artifacts”和“Import BPMN20 file”,在5.9以后去掉了。

如需设计完成流程后自动生成一个png图片按如下处理

l  保存无法生存png图片按以下处理

Window –> Preferences -> Activiti ->Save勾选即可

Activiti 简易教程「建议收藏」

或者手动操作:用Activiti Designer打开xxx.bpmn文件,然后右键选择Export Diagram…,在弹出的对话框中设置图片的参数即可,一般使用默认就可以了。

在设计编辑器中保存DemoProcess.bpmn后的项目视图如下:

 Activiti 简易教程「建议收藏」

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

教程一完毕。

Create By :http://blog.csdn.net/yangyi22/article/details/9225849 

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

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

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


相关推荐

  • hashmap线程安全吗 什么解决方案_hashtable为什么是线程安全

    hashmap线程安全吗 什么解决方案_hashtable为什么是线程安全前言该试题从互联网获得,真实性没有考究,加上本人学识浅薄,所以面试题参考为主,解析分享为主。若对解析有不同看法,还请评论指正。谢谢。HashMap为什么不是线程安全?以JDK1.8的HashMap为例,引用作者:一字马胡所写文章中的一张图:上图为…

    2022年9月25日
  • tp3.2分页样式

    tp3.2分页样式首先要搞清楚的就是ThinkPHP3.2.3的分页类已经被移到了Think\Page.class.php,这是跟以前的版本有些不一样的,使用起来还是跟以前版本差不多,但是默认的效果不敢恭维,所以最好是自己加些样式。我加了一些样式(不怎么好看),大家可以自行的再去改进分页样式,效果图:在这里我有先把page的设置做成了一个函数getpage,将这个方法放到Application\Commo…

    2022年7月17日
  • Burp Suite抓包讲解「建议收藏」

    Burp Suite抓包讲解「建议收藏」目录BurpSuite安装介绍BurpSuite抓包工具概述设置代理信息抓包的基本操作抓HTTPS包的证书设置BurpSuite安装介绍BurpSuite是一款集成化的渗透测试工具,包含了许多功能,可以帮助我们高效地完成对web应用程序的渗透测试和攻击。由Java语言编写,执行程序是Java文件类型的jar文件,免费版可在官网下载。环境运行时依赖JRE,需提前安装Java环境。百度JDK下载即可。(打开cmd,输入Java-version,便可查看版本信息)环境变量配置

    2022年6月10日
  • 同源和跨域详解_如何实现跨域

    同源和跨域详解_如何实现跨域同源同源策略的基本概念1995年,同源政策由Netscape公司引入浏览器。目前,所有浏览器都实行这个政策。同源策略:最初,它的含义是指,A网页设置的Cookie,B网页不能打开,除非这两个

    2022年8月2日
  • sublime text3 激活码(JetBrains全家桶)

    (sublime text3 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
  • Java的invoke方法[通俗易懂]

    Java的invoke方法[通俗易懂]如果读一些Java或者相关框架的源码,实际上一定会经常出现invoke方法的调用,在自己或者团队封装框架时,如果有时候弄得不好经常也会报invoke相关的错。invoke方法是干什么的?有什么具体用途?首先要了解invoke方法干什么的以及具体用途,实际你要搞清他在源码那个class文件上,他在那个包里,追根溯源。invoke方法来自Method类,可能不会像我们经常用到的基础类型包装类,以及集合类还有他们的扩展和工具类使用的那么多。但是Method类所在的包可是大名鼎鼎的反射Reflact,不是有

    2022年6月7日

发表回复

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

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