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

Jackson反序列化ZonedDateTime时出现NoSuchFieldError问题求助

解决方案:NoSuchFieldError: ADJUST_DATES_TO_CONTEXT_TIME_ZONE

这个错误的核心原因是Jackson核心依赖与jackson-datatype-jsr310模块版本不匹配。ADJUST_DATES_TO_CONTEXT_TIME_ZONE字段是Jackson 2.8及以上版本才引入的,如果你的项目中jackson-databind、jackson-core等核心包版本低于2.8,但jsr310模块用了更高版本,就会触发这个字段找不到的异常。

下面是具体的修复步骤:

1. 统一Jackson所有相关依赖的版本

确保以下依赖的版本完全一致:

  • jackson-core
  • jackson-databind
  • jackson-annotations
  • jackson-datatype-jsr310

比如在pom.xml中明确指定相同版本:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.15.2</version> <!-- 选择一个稳定的高版本,比如2.15.x系列 -->
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.15.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.15.2</version>
</dependency>

2. 使用DependencyManagement锁定版本(推荐)

为了避免项目中其他依赖间接引入不同版本的Jackson,建议在pom.xml的dependencyManagement节点中统一锁定版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson</groupId>
            <artifactId>jackson-bom</artifactId>
            <version>2.15.2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

这样之后,你只需要引入jsr310依赖,不用指定版本,会自动继承bom中的统一版本:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

3. 排查并排除冲突依赖

如果还是有问题,用Maven命令查看依赖树,找出引入低版本Jackson的依赖:

mvn dependency:tree | grep jackson

找到冲突的依赖后,在对应的dependency中添加exclusions排除低版本的Jackson核心包,比如:

<dependency>
    <groupId>某个引入低版本Jackson的groupId</groupId>
    <artifactId>对应的artifactId</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

完成以上步骤后,重新构建项目,定时任务的序列化/反序列化异常应该就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:54:14