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

Jackson Schema校验抛出IllegalAccessError,是否因依赖冲突导致?

问题结论:是依赖冲突导致的

这个错误是Jackson版本不兼容引发的依赖冲突问题,具体原因和解决步骤如下:

错误原因分析

java.lang.IllegalAccessError表明JsonFactoryBuilder类尝试访问JsonFactory.DEFAULT_ROOT_VALUE_SEPARATOR字段时没有权限。核心诱因是:

  • Jackson不同版本中,该字段的访问修饰符发生过变更(比如从public改为private);
  • 项目中同时存在多个版本的Jackson核心类(jackson-core),导致类加载时版本不一致:JsonFactoryBuilder来自某个版本的Jackson,而JsonFactory来自另一个不兼容的版本,触发了访问权限错误。

你的依赖树仅显示了jackson-datatype-jsr310:2.15.0-rc2,但Jackson核心包(jackson-core、jackson-databind等)大概率被swagger相关依赖引入了其他版本,引发了冲突。

解决步骤

  • 执行以下命令,精准排查所有Jackson核心相关依赖的版本:
    mvn dependency:tree -Dincludes=com.fasterxml.jackson.core
    
  • 在项目pom.xml中统一所有Jackson模块的版本,确保jackson-core、jackson-databind、jackson-annotations、jackson-datatype-jsr310等组件使用同一个稳定版本(建议避免使用rc候选版本,比如替换为2.15.2)。
  • 如果发现某个依赖引入了不兼容的Jackson版本,通过<exclusions>排除该依赖中的Jackson模块,示例如下:
    <dependency>
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <version>xxx</version>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:52:27