我使用的是jackson的最新2.13.0版本,当我尝试解析YAML文件时,遇到此异常
java.lang.NoSuchMethodError: 'com.fasterxml.jackson.core.io.ContentReference com.fasterxml.jackson.dataformat.yaml.YAMLFactory._createContentReference(java.lang.Object)'
有什么问题吗?
我所包含的依赖项是jackson-core、jackson-databind和jackson-dataformat-yaml,它们都是2.13.0
3条答案
按热度按时间42fyovps1#
No such method error
在大多数情况下意味着您有两个相同的依赖项,但版本不同,但是应用程序正在加载的版本中没有此方法,对此
_createContentReference
的引用存在于jackson-dataformat-yaml.jar
的YAMLFactory
中实际的
_createContentReference
实现存在于com.fasterxml.jackson.core.JsonFactory
中,而com.fasterxml.jackson.core.JsonFactory
存在于jackson-core.2.13.0.
中在您的情况下,您可能有另一个旧版本的
jackson-core.jar
作为间接依赖关系的一部分。您可以看到
mvn dependency:tree
或您的IDE(例如Eclipse允许您按名称搜索依赖项,并返回所有匹配项,包括它们的版本)wixjitnu2#
谢谢,它帮助我从quarkus-smallrye-openapi中排除了jackson-dataformat-yaml版本2.13.1,并包含了2.12.3。
bxgwgixi3#
我也面临同样的问题。我的环境是- Wildfly版本-26. 1. 1-最终Spring Boot -2. 7. 8
出现该问题的原因是Wildfly具有已作为模块添加的相同版本API,并且相同的Jackson * 系列jar集将通过 Spring 引导 Boot 因此在运行时会产生问题。
解决方案-spring-boot pom.xml下的所有Jackson * jar都添加到排除列表中,并单独添加了具有提供范围的依赖项。我修改的pom.xml如下所示-