已提供依赖仍在Eclipse中出现NoSuchFieldError问题求助
Jackson
NoSuchFieldError: READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE 问题排查与解决 错误核心原因
这个错误由Jackson核心组件版本不兼容或依赖冲突导致:
READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE是Jackson 2.14.x及以上版本中DeserializationFeature类新增的枚举字段- 项目中混入了低版本的
jackson-databind(如2.13及更早版本),与你配置的2.15.2版本混用,导致运行时找不到该字段
排查与修复步骤
检查依赖树定位冲突
执行Gradle命令查看完整依赖关系,找出被间接引入的低版本Jackson组件:./gradlew dependencies重点排查
jackson-core、jackson-databind、jackson-annotations这三个核心包的版本是否统一为2.15.2。强制统一所有Jackson版本
在build.gradle中添加版本约束,确保所有Jackson相关依赖(包括间接依赖)都使用指定版本:configurations.all { resolutionStrategy { force "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}" force "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" force "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" } }验证CXF的传递依赖
CXF 4.0.2依赖Jackson的Jakarta适配版本,需确认其是否引入了与你指定版本冲突的Jackson组件。若有冲突,通过上述强制版本的方式覆盖。清理缓存并重新构建
执行以下命令清理旧构建缓存,确保新依赖生效:./gradlew clean build --refresh-dependencies
额外注意事项
- 所有Jackson扩展包(如
jackson-datatype-jsr310、jackson-module-jaxb-annotations)的版本必须与核心包完全一致,禁止跨版本混用 - 若项目集成了Spring等其他框架,需检查框架自带的Jackson依赖,确保版本统一
内容的提问来源于stack exchange,提问作者PriyanWL2022
相关产品推荐
相关产品推荐

