只是为了能在框架中使用这个工作流并不是教学 反正差不多会用就拉倒了
因为不会写vue 所以只把 activti 能创建能应用记录一下 jeecgboot(2.2.0)
只有一种实现方式 activiti在线设计 代码生成数据表 并且使用的试jeecgboot (应该会同理 2.2.0jeecgboot 使用的(springboot)(2.1.3.RELEASE)版本)
参考部分代码 csdn 南易武痴: https://gitee.com/isfive/jeecg-boot-activiti-vue
因为这个代码引入得包时springboot 引得包特别少 导致我一堆问题 我又找了一个但是找不到源地址了
activiti官网下载zip文件资源 解压缩 最好下载完整指南github
将activiti-5.22.0/war/activiti-explorer.war解压
将文件夹内 diagram-viewer,editor-app,modeler.html 拿出来
activiti-explorer\WEB-INF\classes\stencilset.json 文件
已经整理好的 压缩包
拷贝到 resource 文件夹里面
引入jar包(参考了南易武痴)所以pom 文件 会少一些
一、pom文件修改
<!-- Activiti 启动器 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Activiti 流程图 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>5.22.0</version>
</dependency>
<!-- Activiti 在线设计 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
<version>5.22.0</version>
</dependency>
一、初始化数据库
pom 修改好之后 随便创建个类 写个主函数 必须生成到jeecg-boot 数据库中(如果你改掉了你的数据 那就是你的数据库不要跨库不知道为什么他会找qrt开头的 定时任务的表可能我没关配置文件 用配置类 他不生成表告诉我找不到 我不会 就这样)(又发现了问题 mysql 驱动版本问题 使用 主函数主动生成表的时候可能会报 ### Cause: java.sql.SQLSyntaxErrorException: Table 'jeecg-boot.act_ge_property' doesn't exist 找不到这个表 尽可能的 直接 将表导入到数据库不使用主函数 生成, 将 mysql 驱动 8.0改成5版本 例5.1.41 )参考activiti
手动导入数据库参考Activiti工作流 (一)初始化数据库
(二)activiti的数据库表核心在于engine,identity和history是分离了出来。根据官方指导手册的说法,activiti的history功能是可以选择是否开启的,如果不需要自然不用history相关的表,而identity和用户以及用户组相关的表也是不一定需要的
package org.jeecg.modules.activiti;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
/**
* 初始化activiti 表
* @author Digimon
*
*/
public class CreatTable {
public static void main(String[] args) {
//获取流程引擎配置
ProcessEngineConfiguration pec=ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
//配置驱动
pec.setJdbcDriver("com.mysql.jdbc.Driver");
//配置连接地址
pec.setJdbcUrl("jdbc:mysql://vmdatabase:3306/jeecg-boot");
//配置用户名
pec.setJdbcUsername("root");
//配置密码
pec.setJdbcPassword("root");
/**
* 配置模式,true自动创建和更新表
*/
pec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//获取流程引擎对象
ProcessEngine pe = pec.buildProcessEngine();
}
}
全都正好 把 代码里面的ActivitiDataSourceConfig类拿过来直接用就会报
Caused by: java.io.FileNotFoundException: class path resource [org/springframework/security/config/annotation/authentication/configurers/GlobalAuthenticationConfigurerAdapter.class]
cannot be opened because it does not exist
没报就拉到 报了就是 Application类 上面没有过滤
//如果还是需要登录, 吧这三个类全过滤, 单机的时候发现也要登录 而且默认 账号登录不上
@EnableAutoConfiguration(exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class
,
org.activiti.spring.boot.SecurityAutoConfiguration.class
})
//默认账号密码
账号 密码 角色
kermit kermit admin
gonzo gonzo manager
fozzie fozzie user
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients@EnableAutoConfiguration(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
//就是这个类
org.activiti.spring.boot.SecurityAutoConfiguration.class})
public class JeecgTestApplication {
public static void main(String[] args) throws UnknownHostException {
SpringApplication.run(JeecgTestApplication.class, args);
}
复制一份controller ActivitiModelController 类 我只保留了create 方法 用来测试一下能否 进入创建页面
找到 ShiroConfig.java 添加 filterChainDefinitionMap.put("/activiti/models", "anon"); 过滤掉这个 测试 第一个遇到得问题 直接请求 /activiti/models会说没有token
所以 到这我 放弃了 这个项目重新搭建了一个songboot 为了过滤掉 拦截得问题 因为我不会撤掉这个拦截