我正在尝试配置jboss wildfly 8以使用Jackson for 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 $代理$ _ $ $ WeldClientProxy.disable(Lorg / Codehaus的/杰克逊/地图/ DES erializationConfig $特征; Z)Lorg / Codehaus的/杰克逊/ JAXRS / JacksonJsonProvider;” 类加载器(org / jboss / modules / ModuleClassLoader的实例) 目前的班级, 组织/ JBoss的/ RestEasy的/插件/供应商/杰克逊/ ResteasyJacksonPr ovider $ Proxy $ $$ WeldClientProxy及其超类加载器(实例 of org / jboss / modules / ModuleClassLoader),有不同的Class对象 对于类型 sy.plugins.providers.jackson.ResteasyJacksonProvider $代理$ 的$$ _ WeldClientProx y.disable(Lorg / Codehaus的/杰克逊/图/ DeserializationConfig $特征; Z)Lorg / Codehaus的/杰克逊/ 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>
所以看起来非常像杰克逊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吗?
答案 0 :(得分:7)
WildFly 8已经包括杰克逊。使用<scope>provided</scope>
标记依赖项。然后,您需要根据jboss-deployment-structure.xml
为您的部署添加documentation。
<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 :(得分: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>