从我在Wildfly 8.2.0上的War中排除org.codehouse.jackson。*以使用com.fasterxml.jackson。*

时间:2016-01-28 14:47:44

标签: jackson resteasy wildfly-8

我尝试将com.fasterxml.jackson用于我的JSON反序列化和序列化。我将com.fasterxml版本的依赖项放在我的war-project的pom.xml中,并在那里添加了org.jboss.resteasy.resteasy-jackson2-provider依赖项。但是我的WildFly抛出异常,它无法找到类org.codehouse.jackson.jaxrs.JacksonJsonProvider。我还尝试在我的jboss-deployment-structure.xml中排除resteasy-jackson-provider,并将新的resteasy-jackson2-provider添加为依赖项,将service-attribute设置为" import"正如我在以前的一些问题上找到的这些都没有解决我的问题。重要文件(希望我没有错过一个):
JBoss的部署结构:

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

pom.xml的依赖关系:

<dependency>
  <groupId>org.jboss.resteasy</groupId>
  <artifactId>resteasy-jackson2-provider</artifactId>
  <version>3.0.10.Final</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.4.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <version>2.4.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.4.1</version>
  <scope>provided</scope>
</dependency>

编辑:我注意到我的战争中有几个重复的罐子(包括resteasy-jackson-provider)。为了解决这个问题,我试图尽可能多地从我的poms中排除一般的poms(例如wildfly-parent)。我现在在我的poms中只有直接必要的依赖项,问题仍然存在(多个罐子我没有包含或包含在我的战争中提供的范围)。有没有人知道为什么会出现这种情况? 编辑2:问题是固定的,我的maven脚本出现了问题,这个问题没有清理战争...我的部分犯了愚蠢的错误

2 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题

林&#39;不是很确定,但是当我尝试时,我发现Wildfly已将所有模块打包在javaee.api下,因此您无法排除任何模块或必须排除所有模块。您必须升级Wildfly版本和升级包。

我至少可以告诉你,在最新版本中他们使用的是speedxml。因此,如果您不需要特定版本的fasterXML杰克逊,请升级野生动物。

答案 1 :(得分:0)

对于到达这里的任何人,我想评论一下,对我来说,关键是这个排除,特别重要的是第二个:

<exclusions>
     <module name="org.jboss.resteasy.resteasy-jackson-provider"/>
    <module name="org.jboss.resteasy.resteasy-json-binding-provider"/>
</exclusions>

所以,我希望这对某人有所帮助。