问题一:Springboot整合activiti后项目启动失败;
在整合之前项目可以成功的部署到tomcat上,但是在整合activiti的maven依赖后,
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
</dependency>
当再次重新启动tomcat就报错了,但是从控制台的输出中看不出任何出错原因,所以我在网上收集Springboot整合activiti过程中出错的类似问题;
第一类问题:
@SpringBootApplication(exclude=SecurityAutoConfiguration.class)
在springBoot的启动项中需要添加exclude=SecurityAutoConfiguration.class,因为activiti内嵌了Spring Security安全架构,而现在的项目中使用的是shiro框架,所以需要排除;
第二类问题:
spring.activiti.check-process-definitions=false
SpringBoot整合activiti后默认启动项目时会将processes/目录下的流程文件自动部署,但是在我的SpringBoot项目结构中并没有这个文件夹,所以需要在配置文件application.properties中添加键值对:spring.activiti.check-process-definitions=false
通过对以上两类问题的处理后,再次启动项目,居然成功通过了;
问题二:流程在部署的时候,二进制图片文件插入到atc_ge_bytearray表中失败;
从控制台报错的描述中可以看出部署对象表和流程定义表都成功插入了数据,只有在将二进制流程图片数据保持到二进制数组表时发生错误,然后从网上收集相关问题,得出的结论是:数据库的编码方式需要调整。然而,相对mysql数据库,oracle修改数据库的编码方式相当麻烦,涉及到对注册表的修改(这一点,在我们公司是不允许的,因为公司的电脑修改注册表需要权限),所以没有去尝试这一步;然后,我假设activiti的版本存在兼容问题,但是通过修改activiti版本由5.21.0.RELEASE修改为5.22.0.RELEASE,问题并没有解决,还是一样的报错。
&emsp;之后我认真看了一眼application.properties配置文件关于数据源的配置,发现数据库类型被标识为mysql(因为项目的前生是从mysql数据源迁移到oracle的,但是数据库的类型一直没有改变);
所以尝试将mysql修改为oracle后,再次重新部署成功(小惊喜,虽然被折磨了很久。。。。)!
目前只遇到这两个问题,后续待有问题再更新!!!