You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用azure-core 1.20连接Azure KeyVault时JacksonAdapter解析异常

错误根因

你遇到的java.lang.VerifyError是Jackson组件版本不匹配导致:TokenStreamFactory是Jackson 2.10及以上版本才新增的类,你的环境中同时存在低版本2.9.9的jackson-core包和高版本2.12.5的jackson-databind包,低版本JsonFactory没有继承TokenStreamFactory父类,就会触发返回类型不匹配的错误。

2.9.9版本引入来源排查方向

Ivy报告中无相关记录的常见原因如下:

  • 应用服务器自带依赖:你使用的Tomcat 9的lib目录下可能预置了旧版本Jackson包,这类容器级别的依赖不属于Ivy管理的应用依赖范围,不会出现在Ivy报告中。
  • 传递依赖引入未被捕获:commons-configuration、struts这类老旧组件的传递依赖可能间接引入了低版本Jackson,没有显式锁定版本的情况下会被优先加载。
  • 构建缓存残留:之前构建遗留的旧Jackson包还在构建输出目录或者Ivy本地缓存中,没有被清理干净。

解决方案

  1. 显式锁定Jackson全组件版本,在你的Ivy依赖配置最顶部加入如下配置,强制所有Jackson组件统一使用2.12.5版本:
<dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="2.12.5" conf="binaries->default" force="true"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.12.5" conf="binaries->default" force="true"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="2.12.5" conf="binaries->default" force="true"/>
  1. 检查Tomcat的lib目录,删除目录内所有Jackson相关的Jar包,避免容器依赖优先级高于应用依赖。
  2. 清空Ivy本地缓存、项目构建输出目录,重新执行依赖拉取和构建操作,构建完成后检查输出包WEB-INF/lib下的Jackson组件版本是否全部统一为2.12.5。
  3. 冲突仍存在的情况下,启动应用时添加JVM参数-verbose:class,查看com.fasterxml.jackson.core.JsonFactory类的加载来源,直接定位旧版本Jar包的位置。

内容的提问来源于stack exchange,提问作者user1874435

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:30:00