在JBoss 7.1.1上的RESTEasy上设置JSON提供程序

Vla*_*mir 8 json resteasy jboss7.x

如何在JBoss 7.1.1上为RestEasy设置JSON提供程序?

RestEasy文档说:

RESTEasy允许您将JAXB带注释的POJO与JSON进行编组.此提供程序包装Jettison JSON库以实现此目的.

但我发现似乎在JBoss 7.1.1上Resteasy使用Jackson提供程序,因为我的类字段上的@XmlTransient被忽略了,但是@JsonIgnore被处理了.

我如何告诉Resteasy使用Jettison而不是Jackson?

在Jboss上我找到了两个提供商.

Ond*_*žka 1

据我目前观察,Jackson 是 JBoss AS 7.1.2 中的默认值。

首先,RestEasy 模块对应用程序的类加载器隐藏,而 IMO 不应该这样做。所以我刚刚提交了https://issues.jboss.org/browse/AS7-5605

其次,针对您的问题:要设置特定的提供程序,您需要将其从 AS 中的类加载器位置中删除 - 因此,再次注释掉module.xml您不想使用的那些提供程序 - 如果 Jackson 可用,RestEasy使用它;否则它使用 Jetison。

另外,将它们添加为您的项目作为编译时依赖项,以便您可以使用它们的特定注释。例子:

    <!-- RestEasy -->
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>jaxrs-api</artifactId>
        <version>2.3.4.Final</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.2</version>
        <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

注意:在 AS7-5605 完成之前,您需要手动设置版本。之后(在 AS 的更高版本中),您必须删除这些版本并使用 JBoss BOM 中定义的版本。例如,请参阅JBoss AS QuckStarts 。

请随意使用替代提供商创建并贡献RestEasy 快速入门。