【问题标题】:using Jackson annotations in Wildfly在 Wildfly 中使用 Jackson 注释
【发布时间】:2014-03-16 19:57:22
【问题描述】:

我正在努力让 Jackson Annotations 在我部署在 Wildfly 中的项目中工作。

我已经尝试过implementing a MessageBodyWriter,但没有成功。我的项目如下所示:我的耳朵带有一个 ejb 模块,它包含带注释的 Pojos,我有一个带有 REST 服务的 Web 模块。这是我当前的配置/依赖项:

ejb 模块 pom.xml:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.2.3</version>
    <scope>provided</scope>
    <type>jar</type>
</dependency>

休息模块 pom.xml:

no jackson dependencies.

ear-project pom.xml:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>3.0.6.Final</version>
</dependency>

ear-project /META-INF/jboss-deployment-structure.xml:

<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> 

但杰克逊注释被忽略。我错过了什么?还是我做的太多了?

【问题讨论】:

    标签: jackson wildfly


    【解决方案1】:

    RESTEasy 和 Jackson 依赖项应标记​​为 &lt;scope&gt;provided&lt;/scope&gt;

    此外,如果您只在 WAR 中使用 JAX-RS 和 Jackson,只需将 jboss-deployment-structure.xml 移动到您的 WAR/WEB-INF 目录即可。如果您不想移动它,您可能需要添加&lt;sub-deployment/&gt;

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

    【讨论】:

    • 将 jboss-deployment-structure.xml 移动到 WAR/WEB-INF 不起作用。我收到一条警告消息,指出此 xml 必须在顶级部署中,因此被忽略。 的第二个解决方案似乎有效。至少我现在遇到了 jackson2 错误:stackoverflow.com/questions/21780208/… 所以我想我现在走对了。
    • 现在使用jackson 2.2.1,没有错误了。但是我的杰克逊注释没有被评估。看起来我需要重命名所有 get... 方法给... :-(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2018-11-08
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多