Java创建Delta Sharing REST客户端遇Scala ObjectMapper缺失异常求助
解决java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/scala/ScalaObjectMapper异常
问题根源
这个异常说明项目缺少Jackson的Scala模块依赖,Delta Sharing的部分基于Scala开发的组件需要该模块完成JSON序列化/反序列化操作。同时你依赖的Delta系列组件版本差异较大,也可能加剧依赖冲突问题。
解决方案
1. 添加Jackson Scala模块依赖
在Gradle构建文件中添加与Spring Boot 2.3.1.RELEASE自带Jackson版本(2.11.x)匹配的Scala模块依赖:
implementation("com.fasterxml.jackson.module:jackson-module-scala_2.12:2.11.4")
2. 统一Delta系列组件版本
当前delta-sharing-spark_2.12:0.6.0和delta-core_2.12:2.1.0版本差异过大,易引发依赖冲突。建议调整为兼容的版本组合,例如:
// 统一为兼容的2.1.0版本 implementation("io.delta:delta-standalone_2.12:2.1.0") implementation("io.delta:delta-sharing-spark_2.12:2.1.0") implementation("io.delta:delta-core_2.12:2.1.0")
3. 排除冲突的Jackson依赖(可选)
若添加依赖后仍存在版本冲突,可从Delta或Spring Boot依赖中排除冲突的Jackson模块,保证版本统一:
implementation("io.delta:delta-sharing-spark_2.12:2.1.0") { exclude group: "com.fasterxml.jackson.core", module: "jackson-databind" exclude group: "com.fasterxml.jackson.module", module: "jackson-module-scala_2.12" }
验证步骤
- 执行
./gradlew build --refresh-dependencies更新Gradle依赖 - 重新运行客户端代码,检查异常是否消失
内容的提问来源于stack exchange,提问作者kaundinya
相关产品推荐
相关产品推荐

