使用azure-storage-blob-client出现Jackson相关警告报错的原因是什么
错误原因
核心原因是项目中Jackson系列依赖存在版本冲突、版本过低或者缺失问题,不满足azure-core 1.21.0的依赖要求:
- 日志明确标注Azure SDK要求
jackson-annotations、jackson-core、jackson-databind三个核心依赖的最低版本为2.10.0,当前项目中这三个依赖的版本无法被正常识别(日志显示为unknown),实际版本大概率低于要求值,甚至没有正确引入 - 报错的
java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider进一步佐证了版本问题:AccessorNamingStrategy.Provider是Jackson 2.12版本才新增的类,当前项目引入的jackson-databind版本低于2.12,导致类加载失败 - 项目中Jackson不同模块版本不统一:日志显示
jackson-dataformat-xml、jackson-datatype-jsr310的版本为2.12.5,和三个核心Jackson依赖的版本不一致,加剧了依赖冲突问题
修复方案
- 统一锁定项目中所有Jackson相关依赖的版本,建议选择不低于2.12.5的版本,和现有Jackson模块版本对齐
- Maven项目可通过dependencyManagement导入Jackson的bom配置统一管理版本:
<dependencyManagement> <dependencies> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>2.12.5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
- Gradle项目可通过platform依赖锁定版本:
implementation platform('com.fasterxml.jackson:jackson-bom:2.12.5')
内容的提问来源于stack exchange,提问作者rogerdpack
相关产品推荐
相关产品推荐

