首页 文章

Wildfly和Jackson:LinkageError

提问于
浏览
6

我正在尝试配置jboss wildfly 8以使用Jackson作为JSON . 所以我补充道

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson-provider</artifactId>
    <version>3.0.6.Final</version>
    <type>jar</type>
</dependency>

在我的耳朵项目 . 但在部署时我收到以下错误:

引起:java.lang.LinkageError:加载器约束违规:解析重写方法时“org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider $ Proxy $ _ $$ WeldClientProxy.disable(Lorg / codehaus / jackson / map / Des erializationConfig $ Feature; Z)Lorg / codehaus / jackson / jaxrs / JacksonJsonProvider;“当前类的类加载器(org / jboss / modules / ModuleClassLoader的实例),org / jboss / resteasy / plugins / providers / jackson / ResteasyJacksonPr ovider $ Proxy $$$ WeldClientProxy及其超类加载器(org / jboss的实例) / modules / ModuleClassLoader),具有类型sy.plugins.providers.jackson.ResteasyJacksonProvider的不同Class对象$ Proxy $$$ _ WeldClientProx y.disable(Lorg / codehaus / jackson / map / DeserializationConfig $ Feature; Z)Lorg / codehaus / Jackson / JAXRS / JacksonJsonProvider;用于签名

版本3.0.6与Wildfly不兼容吗?我怎么知道哪个版本有效?我也试过2.3.7和1.1但总是一样的错误 .

编辑:

我有一个带pojos的ejb模块 . 在这里,我有依赖:

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.2.3</version>
        <scope>provided</scope>
        <type>jar</type>
    </dependency>

所以看起来非常像 Jackson 2给我 .

在我耳边,我有以下依赖:

<dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>3.0.6.Final</version>
        <type>jar</type>
        <scope>provided</scope>
</dependency>

我现在需要resteasy-jackson2-provider吗?我现在需要jboss-deployment-structure.xml吗?

2 回答

  • 7

    WildFly 8已经包括 Jackson . 使用 <scope>provided</scope> 标记依赖项 . 然后,您需要根据documentation为您的部署添加jboss-deployment-structure.xml .

    <jboss-deployment-structure>
        <deployment>
            <exclusions>
               <module name="org.jboss.resteasy.resteasy-jackson-provider"/>
            </exclusions>
            <dependencies>
                <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/>
            </dependencies>
        </deployment>
    </jboss-deployment-structure>
    
  • 1

    当我导入 <module name = "com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" /> 时它对我有用,因为 <module name = "org.jboss.resteasy.resteasy-jackson2-provider" services = "Import" /> 不会导出它

    <jboss-deployment-structure>
          <sub-deployment name="erp-integrator.jar">
            <exclusions>
               <module name="org.jboss.resteasy.resteasy-jackson-provider"/>
            </exclusions>
            <dependencies>
                <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import" />
                <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
            </dependencies>
        </sub-deployment>
    </jboss-deployment-structure>
    

相关问题