我有一个有趣的问题,我的Wildfly 8.1安装使用Jackson(不是Jackson 2)来编组JSON类 . 我想使用Jettison来利用我在课堂上的JAXB注释 .

为了强制服务器使用Jettison而不是Jackson,我执行了以下步骤:

  • 修改了POM.xml依赖项以依赖于 resteasy-jettison-provider 模块,并将作用域设置为 provided

<依赖>
<groupId> org.jboss.resteasy </ groupId>
<artifactId> resteasy-jettison-provider </ artifactId> <version> 3.0.8.Final </ version>
<scope>提供</ scope>
</ dependency>

  • 修改了我的WEB-INF目录中的 jboss-deployment-structure.xml 以包含jettison模块并排除所有jackson模块:

<jboss-deployment-structure> <deployment> <exclusions> <module name = "org.jboss.resteasy.resteasy-jackson-provider" /> <module name = "com.fasterxml.jackson.core.jackson-core" /> <module name = "com.fasterxml.jackson.core.jackson-annotations" /> <module name = "com.fasterxml.jackson.core.jackson-databind" /> <module name = "com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" /> <module name = "org.jboss.resteasy.resteasy-jackson2-provider" /> </ exclusions> <dependencies> <module name = "org.jboss.resteasy.resteasy-jettison-provider" /> </ dependencies> </ deployment> </ jboss-deployment-structure>

当我启动服务器时,我发送一个简单的JSON来登录我的应用程序:

{ 
    "authRequest":   
    { 
      "appLogin":"restful",
      "appPassword":"mypassword" 
    }
}

但是,当我发送此代码片段时,我从服务器获得以下异常:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "authRequest" (class com.myapp.AppAuthRequest), not marked as ignorable

从这个例外看,尽管我配置了 Jackson 仍然在使用它 .

任何人都可以指出我做错了什么或我有什么错误配置?