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

Jackson升级至2.12.x在Kotlin1.3.x环境下触发反序列化错误

问题根因

该错误由Jackson 2.12.x的Kotlin模块与Kotlin 1.3.x版本不兼容导致,不属于Jackson自身的功能破坏性变更:

  • kotlin.reflect.KClass.getSealedSubclasses() 是Kotlin 1.4版本才正式加入的反射API,Kotlin 1.3.x标准库不存在该方法
  • Jackson 2.12.x对应的jackson-module-kotlin组件在处理密封类子类的自动识别逻辑时,直接调用了这个1.4版本新增的API,运行在Kotlin 1.3.x环境下就会触发方法找不到的运行时异常

错误堆栈参考:

Caused by: java.lang.NoSuchMethodError: kotlin.reflect.KClass.getSealedSubclasses()Ljava/util/List; 
|   at com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.findSubtypes(KotlinAnnotationIntrospector.kt:72) 
|   at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findSubtypes(AnnotationIntrospectorPair.java:263) 
|   at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findSubtypes(AnnotationIntrospectorPair.java:263) 
|   at com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver._collectAndResolveByTypeId(StdSubtypeResolver.java:288) 
... jackson internals omitted ...
|   at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3601) 
|   at com.xxxxxxx.util.JacksonSerializationHelper.deserialize(JacksonSerializationHelper.kt:94) 
解决方案

根据项目约束二选一即可:

  • 允许升级Kotlin版本:将项目的Kotlin编译器、kotlin-stdlib、kotlin-reflect依赖统一升级到1.4.32及以上稳定版本,即可正常适配Jackson 2.12.x
  • 必须保留Kotlin 1.3.x版本:将Jackson全组件版本回退到2.11.x最终稳定版即可,2.11.x系列的Kotlin模块最低兼容Kotlin 1.3运行环境

注意:所有Jackson核心组件(jackson-core、jackson-databind、jackson-module-kotlin)的版本必须保持完全一致,避免出现其他版本不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:36:00