Mat*_*ieu 10 java data-binding version apache-spark
对于一个项目,我将 Spark 结构化流与 kafka 结合使用。
我有这个配置:
<spark.version>3.1.1</spark.version>
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<scala.version>2.12</scala.version>
Run Code Online (Sandbox Code Playgroud)
但是当我运行时,出现以下错误:
引起原因:com.fasterxml.jackson.databind.JsonMappingException:Scala 模块 2.12.3 需要 Jackson Databind 版本 >= 2.12.0 且 < 2.13.0
我很困惑,因为我已经在 2.12.3 中导入了 databind。就在这里,我的 pom.xml 的摘录:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_${scala.version}</artifactId>
<version>2.12.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助
您确定有错误吗?Scala 2.12 需要 Jackson 2.10.x。
要进行调试,请运行mvn dependency:tree以查看实际拖入的依赖项/版本。您可能会获得非 2.10.x 的其他 Jackson JAR。
如果您正在构建 Spring 项目(具有父 POM spring-boot-dependency),请设置:
<jackson-bom.version>2.10.5.20201202</jackson-bom.version>
Run Code Online (Sandbox Code Playgroud)
满足 Scala 要求的最新 Jackson。否则,您需要将以下内容添加到您的<dependencyManagement/>:
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson-bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
并<version>从 Jackson 中删除依赖项。
| 归档时间: |
|
| 查看次数: |
20149 次 |
| 最近记录: |