Activiti REST是activiti框架的一个模块,Activiti提供了基于RestFul风格的API,从而可以通过HTTP协议直接访问Activiti的REST API来实现流程的各种操作,同时也做到了跨平台,跨语音的通信,对于除了JAVA的其他语言可以通过HTTP协议访问API来操控流程引擎,使用这不需关心流程引擎使用哪种语言实现,这样做的好处是方便统一管理。
接口文档可以参考Activiti的用户手册查看各API用途
官网用户手册5.21版(第15章-REST API)http://www.mossle.com/docs/activiti/5.21/index.html#_rest_api
在Activiti的官网把activiti的包下载下来
文件的wars文件夹里面有三个文件activiti-app.war、activiti-admin.war、activiti-rest.war,只要将最后一个“activiti-rest.war” 放在tomcat->webapps文件夹下,修改配置文件db.properties(启动tomcat后,自动解压项目,然后再修改配置文件,记得重启tomcat)如下
db=MySQL
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/activiti?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456
activiti-rest的lib目录下默认是没有mysql的驱动程序的,需要手动将mysql-connector-java.jar拷贝到tomcat/webapps/activiti-rest/WEB-INF/lib
接下来就可以启动tomcat了,启动成功后可以通过访问:http://localhost:8080/activiti-rest/docs/#/ 默认用户名密码是kermit/kermit,查看服务的api接口文档
默认所有REST资源都需要先使用有效的activiti用户认证后才能使用。会使用Basic HTTP认证,所以你要一直在请求的HTTP头中包含一个Authorization: Basic ...==
属性,或在请求url中包含用户名和密码,有关basic的认证可以自行百度,说白了就是在请求头加上一个Authorization: Basic base64(user:possword),编码的内容是“用户名:密码”的base64加密,默认用户名和密码都是kermit
想要测试接口的话,可以借助postman、REST Client等接口测试的软件,当然可以直接用swagger接口文档直接测试。
直接将rest放在tomcat跑没有什么问题,可实际项目中,我们要灵活的在自己的项目中启动才放心,并且可以灵活的添加接口等内容,鉴于网上的资料和官网大部分都是对rest api的接口说明,没有对实际项目的搭建有说明,也是自己找了很多材料和实践才真是的吧activiti-rest与spring、springMVC集成出来,供大家学习参考。
自己整理好了一份项目可以自己下载参考:https://github.com/wangtaowtao/activiti-rest-spring
2.2.1 maven的依赖
activiti-rest依赖
org.activiti
activiti-rest
6.0.0
spring依赖最好是最新版本的,起码4.3.x以上的版本
2.2.2 spring配置文件
activiti-rest的所有组件的Controller都放在了org.activiti.rest包下
1. 在springMVC的配置文件要把activiti-rest的Controller包扫描添加进去
2. 因为在启动项目的时候activiti-rest还需要几个bean是自己配置的,所以还需要添加如下几个bean(踩出来的坑,我给你填)
当然其他的springMVC,spring-activiti等的配置还得添加,上面才是activit-rest的关键配置,以下是我的各个配置文件有用没用的可以参考,springMVC.xml如下:
applicationContext-activiti.xml配置文件
applicationContext.xml配置文件
classpath:jdbc.properties
之后运行程序,(我的项目里是用jetty启动)
希望不报错吧,然后按照接口文档的接口路径,或者自己查看源码找各action接口的访问路径去访问下接口,因为接口包括Get,Post,Put,Delete四种请求方法,所以需要借助如RESTClient等测试接口的软件(推荐:火狐的RESTClient插件,自带Basic认证功能)。
其实看源码发现,activiti-rest就是Activiti官网人家自己将activiti引擎所有的方法封装成了一套比较全的Http API,如果大家在开发activiti的项目时候不想使用REST API服务,完全可以将参考REST API源码里的东西复制出来,做成自己的逻辑业务来开发工作,岂不是也挺好的吗?
(完)