您的位置:首页 > 编程语言 > Java开发

SpringBoot整合activiti遇到的一些问题

2019-06-27 11:18 906 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u010638913/article/details/93853111

我这是在springboot的基础上引入activiti,springboot的配置很简单就不说了,整合activiti互不影响

安装插件

我使用的是IDEA,首先需要安装插件
settings搜索actiBPM,找不到搜索就好了,我这里已经安装好了。

引入依赖

<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
</dependency>

其实这样就可以了,接下来启动

启动

问题1

一开始我引入依赖不是上面那个,是下面这个,少了个basic,版本也不一样,具体可以上maven查看

<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M2</version>
</dependency>

如果引入这个依赖,会出现一个问题,就是

每次启动会出现这个,然后psotman访问回401,关于401网上基本都是说引入了‘spring-boot-starter-security’,但我会这里没有引入security包也出现了,怎么解决呢?我也不知道,因为后来我换成一开始那个依赖,就没有这个问题了,但出现其他问题。
题外话:这个‘spring-boot-starter-security’非常有意思,用网页打开你的项目会出现一个登录页面,而且这个页面还不是你写的,
输入用户名:user
密码:(启动时会提供密码,随机的,截图红色框内那个)
就可以正常访问了,不然访问会被拦截,但用postman就不知道如何处理了,以后有兴趣可以了解下。

问题2

变回一开始那个依赖,启动会报以下问题:

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

具体原因应该是少了security的问题
解决办法:

@SpringBootApplication( exclude = SecurityAutoConfiguration.class)

在springboot启动类上加上括号里面这句,让springboot排除掉security就好了。

问题3

启动之后查看数据库,没有新增表
解决方案:
在配置文件,数据库链接url后面加上

nullCatalogMeansCurrent=true

原因是:activiti5.0 默认true 6.0默认false

问题4

启动成功之后,你会发现你的数据库新增了很多表,网上有人说是25,但我只有17张表,是因为activiti版本不同,默认初始化生成的表不一样。如若少了表,
解决办法:
在配置文件application.yml加上配置

spring:
activiti:
db-history-used: true

再启动就有了
我这里是application.yml,跟application.properties是类似的,写法不同而已。但yml看起来更清爽

问题5

因为我一开始不知哪个版本号,就经常改版本,有一次启动出现一个问题

Could not update Activiti database schema: unknown version from database: ‘7.x.x.x‘

原因是: activiti 相关的jar版本和表 act_ge_property 中 schema.version 所存储的版本不一致导致报错的。因为之前版本生成的表,和新版本的表有冲突。
解决办法:
方案一、act_ge_property 表中的 schema.version 字段版本修改为和 activiti jar包版本一致即可。
方案二、简单直接,把之前生成的表删了,再启动生成一次,就好了。

其他细节

1.xx.bpmn 文件,activiti似乎有默认扫描路径,放在resources/processes文件下。
2.idea安装actiBPM插件,经常会报错,这个不用理他就好了。这点做得不如eclipse,希望官方能更新这个插件。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: