近期开发关于工作流的项目,遇到一个很坑的问题——activiti和tk.mybatis居然会有冲突!!!!!!!!
先看异常:
报错的原因大概就算这句话:
Parameter 1 of method springProcessEngineConfiguration in org.activiti.spring.boot.JpaProcessEngineAutoConfiguration$JpaConfiguration required a bean of type 'javax.persistence.EntityManagerFactory' that could not be found.
找到对应的class
看一看
AbstractProcessEngineAutoConfiguration
找了然后网上找资料, 大概有这几种解决方式
1:第一种是修改pom文件
2:第二种添加config
其实还有其他的方式,个人只是觉得这两种比较靠谱,由于我们使用的是Gradle,我尝试了第一种方式并没有成功,然后根据第二种方式添加config之后的确解决了当前的问题,但是出现了新的问题那就是
根据信息来看 主要看这句:
Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
然后根据https://www.cnblogs.com/jiangwz/p/9711998.html这篇文章我解决了问题;
解决的办法就算:
解决办法:启动类上加上 @SpringBootApplication(exclude = SecurityAutoConfiguration.class)即可;因为activiti-spring-boot-starter-basic中引用了spring-boot-starter-security
排除掉activiti引入的SecurityAutoConfiguration就可解决问题。
原因大概就是:
springboot2.0不能与activiti6.0.0直接集成使用,因为activiti6.0.0出来的时候springboot2.0还没有出来,activiti6.0.0 支持springboot1.2.6以上,2.0.0以下的版本。
这里实际报错是ClassNotFound。
具体的可以看下https://www.cnblogs.com/jiangwz/p/9711998.html这篇文章深入研究一下。