本章主要记录3个遇到的bug和坑:
1.SpringBoot版本为2.6.5以下,SpringBatch连接Oracle数据库报错ORA-08177: 无法连续访问,而之前连接mysql是没有问题的。
2.SpringBoot版本为2.6.5以上,SpringBoot集成Swagger报错springboot swagger Failed to start bean 'documentationPluginsBootstrapper' 空指针问题。
3.执行springbatch报错:不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
解决办法:
1.背景oracle为11g,将SpringBoot版本升到2.7.x,并在application.yml中配置springbatch使用jdbc的隔离级别:
spring:
batch:
jdbc:
isolation-level-for-create: read_committed
然后在2.7.x之前是找不到这个配置滴,网上还有其他解决办法,但试了一圈没啥用,这个成功解决了,就用着吧,还有这个貌似是跑springbatch那个创建表的代码的时候用的,创建完之后可以把这个配置去了也没事似乎。
2.但是将SpringBoot版本升到2.7.x后,Swagger又出问题了,因为之前Swagger就报错,所以用了2.5.10版本的SpringBoot。看网上说这是由于2.6.5之后springMVC使用的路径匹配变了:
Spring Boot 2.6.X使用PathPatternMatcher匹配路径,Swagger引用的Springfox使用的路径匹配是基于AntPathMatcher的。
,所以要么就回到2.5.10,那这样SpringBatch又出问题了0.0,要么就用2.7.x然后application.yml中配置:
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
即可。
3.搜一下orai18n依赖,加入maven就行。