我有一个有趣的问题,我的 Wildfly 8.1 安装使用 Jackson(不是 Jackson 2)将类编组为 JSON。我想使用 Jettison 来利用我在课堂上的 JAXB 注释。
为了强制服务器使用 Jettison 而不是 Jackson,我执行了以下步骤:
修改了 POM.xml 依赖项以依赖于resteasy-jettison-provider模块,其范围设置为提供
<依赖>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId><version>3.0.8.Final</version>
<scope>provided</scope>
</依赖>修改了我的 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"/ >
< 模块名称="com.fasterxml.jackson.core.jackson-annotations" />
< 模块名称="com.fasterxml.jackson.core.jackson-databind" />
< 模块名称="com.fasterxml.jackson. jaxrs.jackson-jaxrs-json-provider" />
< module name="org.jboss.resteasy.resteasy-jackson2-provider" />
</ excludes >
< dependencies >
< module name="org.jboss.resteasy.resteasy-jettison-provider" />
</ 依赖 >
</ 部署 >
</ jboss-部署结构>
当我启动服务器时,我发送一些简单的 JSON 来登录我的应用程序:
{
"authRequest":
{
"appLogin":"restful",
"appPassword":"mypassword"
}
}
但是,当我发送此代码段时,我从服务器收到以下异常:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“authRequest”(com.myapp.AppAuthRequest 类),未标记为可忽略
从那个例外来看,尽管我进行了配置,但似乎仍在使用 Jackson。
谁能指出我做错了什么或我有什么错误配置?