首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在野生苍蝇下加载Jackson JSR310的依赖冲突

在野生苍蝇下加载Jackson JSR310的依赖冲突
EN

Stack Overflow用户
提问于 2016-07-03 19:10:30
回答 1查看 2.4K关注 0票数 1

当我使用Wildfly下的Jackson JSR310模块解析一个JSR310字段时,除了以下例外情况外,它会失败:

代码语言:javascript
复制
 java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonParser.hasToken(Lcom/fasterxml/jackson/core/JsonToken;)Z

我正在使用wildfly-javaee7-with-tools进行依赖关系管理。我的pom.xml的有趣部分

代码语言:javascript
复制
<properties>
    <version.wildfly>10.0.0.Final</version.wildfly>
    <version.jackson>2.6.3</version.jackson>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.wildfly.bom</groupId>
            <artifactId>wildfly-javaee7-with-tools</artifactId>
            <version>${version.wildfly}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate5</artifactId>
        <version>${version.jackson}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jdk8</artifactId>
        <version>${version.jackson}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>${version.jackson}</version>
    </dependency>
</dependencies>

我的提供者:

代码语言:javascript
复制
@Provider
public class ObjectMapperProvider implements ContextResolver<ObjectMapper> {

    private final ObjectMapper objectMapper;

    public ObjectMapperProvider() {
        this.objectMapper = new ObjectMapper();
        objectMapper.registerModule(new Jdk8Module());
        objectMapper.registerModule(new JavaTimeModule());
        objectMapper.registerModule(new Hibernate5Module());
    }

    @Override
    public ObjectMapper getContext(Class<?> aClass) {
        return objectMapper;
    }

}

这显然是一种依赖冲突。然而,这是mvn dependency:tree的输出,与杰克逊有关的一切似乎都在2.6.3上。

代码语言:javascript
复制
[INFO] +- javax:javaee-web-api:jar:7.0:provided
[INFO] +- org.jboss.resteasy:resteasy-jackson2-provider:jar:3.0.14.Final:provided
[INFO] |  +- com.fasterxml.jackson.core:jackson-core:jar:2.6.3:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.3:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.3:compile
[INFO] |  \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-prov ider:jar:2.6.3:provided
[INFO] |     +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.6.3:provided
[INFO] |     \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.6.3:provided
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-hibernate5:jar:2.6.3:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.6.3:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.6.3:compile

我还运行在Wildfly 10.0.0.Final服务器上,因此我不希望10.0.0.Final pom.xml与服务器上提供的实际依赖项之间的版本不匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-03 20:00:56

检查此文件夹并检查版本。wildfly-10.0.0.Final\modules\system\layers\base\com\fasterxml\jackson\core\jacks‌​on-core\main. -我很确定您需要自己指定jackson 2.6.3依赖项,因为org.jboss.resteasy:resteasy-jackson2-provider:jar:3.0.14.Final是提供范围的,而2.6.3不存在于通配符10中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38173460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档