依赖冲突问题修复
完成相关配置后(请确保各个配置项无误且功能正常),直接运行程序会存在依赖冲突问题,下面进行逐一修复(以下问题的修复是相关联的,上一个问题修复后重新运行而产生的后续问题)。
问题一:Logback-classic及log4j-to-slf4j的包冲突问题。
报错如下:
问题原因:
spring-boot-starter-actuator与spring-cloud-starter-huawei-devspore-datasource的Logback-classic及log4j-to-slf4j包存在冲突。
解决办法:
排除相关冲突包,排除后POM文件如下:
问题二:Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
报错如下:
问题原因:
缺少相关依赖包:mybatis-spring-boot-starter。
解决办法:
添加相应依赖包,并去除新加入的包的冲突项,完成后POM如下图所示:
问题三:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured
报错如下:
问题原因:
原生的springboot-dataSource被替换,一些依赖包未找到相应的yaml对应的数据源配置而报错。
解决办法:
删除相关依赖包,使其能对应SDK提供的dataSource,过程如下:
- 删除或注释最外层的POM文件的druid-spring-boot-starter依赖项,如下图所示:
- 删除或注释mall-mbg模块POM文件的druid-spring-boot-starter依赖项,如下图所示:
问题四:io.netty.buffer.PooledByteBufAllocator.<init>(ZIIIIIIZ)V
报错如下:
并且每一段时间会跳出报错信息:
问题原因:
Io.netty相关依赖包版本冲突问题。SDK的依赖包spring-cloud-starter-huawei-devspore-datasource所需的io.netty版本相对本项目的版本更高。项目的io.netty相关依赖包为4.1.49.Final,需升级为4.1.69.Final。
解决办法:
将io.netty的相关依赖包先进行排除,后统一引入4.1.69Final版本。
1.排除4.1.49.Final版本的io.netty相关依赖:
2. 添加4.1.69.Final版本:
按照如上的流程解决完上述四个问题,重新运行项目便可成功对接SDK。
创建ETCD client success且数据源初始化成功:
程序运行成功: