最近因为项目需要集成activity工作流,老大把这个光荣而艰巨的任务交给了俺,俺从前也没接触过工作流,就知道个activity是个工作流,其余啥都不知道,咳咳,废话不多说了,开始踩坑了。
第一步:
当然是先引入包了,现在已经有6.0.0了,但是保险起见,还是不要用最新的了,
<activiti.version>5.22.0</activiti.version>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-rest</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>${activiti.version}</version>
</dependency>
第二步:
在application.yml中配置activity参数
spring:
activiti:
history-level: full
check-process-definitions: false
database-schema-update: true
第三步:
运行项目,结果嘛,不出意料报错。
Failed to process import candidates for configuration class [frame.Application]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/security/config/annotation/authentication/configurers/GlobalAuthenticationConfigurerAdapter.class]
百度后添加包
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>、
</dependency>
但是 。。。。。。
又出现了另一个错误。。。
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
没办法,继续百度
一番折腾后,将启动类上改为
@SpringBootApplication(exclude ={org.activiti.spring.boot.SecurityAutoConfiguration.class})
启动成功。
事情还没完,打开登录页面,纳尼,竟然变成安全认证了
登录页面
认证页面
继续折腾,发现spring 2.0的start也引用了一个SecurityAutoConfiguration,所以也要把这个安全认证排除掉。
@SpringBootApplication(exclude ={org.activiti.spring.boot.SecurityAutoConfiguration.class,org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})
再次运行,success。