前言
鉴于项目需要将acitiviti设计器整合到原工程中,在网上查了不少资料都不太适用,经过借鉴和自己倒腾终于搞定了,分享一下经验,如果有问题,可以在留言区咨询。
文中用到的资源代码链接:
https://download.csdn.net/download/qq_37291176/10659803
一、 环境
笔者使用的Springboot版本为2.0.3 Release,activiti版本为5.22.0,JDK1.8。
Pom中需要引入如下:
<!--activiti begin lvmeng-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>${activiti.version}</version>
</dependency>
<!--activiti end-->
二、 引入activiti
1. 将org文件夹覆盖到(如果没有就新建)src\main\java\ 下。
2. 将acitiviti、common文件夹放到src\main\java\com\ 下,如果有子级包,则放到子级包,如笔者用的是src\main\java\com\huaxin\,并修改各类中的package包名。
3. 将GlobalExceptionHandler.java异常处理类放到自己喜欢的目录,笔者放到了src\main\java\com\huaxin\sys\exception\下,如果你的工程里已经有统一异常处理类,则将笔者附件中GlobalExceptionHandler.java里的customHandler方法加进去。
4. 将stencilset.json放到src\main\resources\下。
5. 将diagram-viewer、editor-app、lib、favicon.ico、index.html、model-list.html放到src\main\resources\static\下。
6. 将modeler.html放到src\main\resources\templates\下。
引入工作到此结束,开始修改整合。
三、 修改整合
1. 首先,不用说你也知道,修改各个类中的package,使之与自己的工程对应。
2. 在你的PageController里(视图映射控制器类)加入
@GetMapping("editor")
public String test() {
return "/modeler";
}
3. 给你的Springboot启动类加上注解去掉Security,
否则访问你的项目会有登录界面,并可能与你的Shiro或其他插件有影响。
@EnableAutoConfiguration(exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})
4. 启动工程,访问http://localhost:8080/model-list.html,如果出现下图情况,则恭喜你成功了,点击绘制流程尝试绘制吧!
四、 可能遇到的问题
1. 如果类中报错有关Security,尝试pom中添加security的引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
其他问题想到后再补充。