WildFly 10 NoDefClassFound com / fasterxml / jackson / jaxrs / cfg / ObjectWriterModifier

时间:2017-05-07 11:00:47

标签: json jackson wildfly pretty-print wildfly-10

为了便于开发返回JSON的端点,我想启用漂亮打印。

solution I'm tyring to implement正在添加一个过滤器,如果查询字符串是?pretty = 1,则会注入启用默认漂亮打印机的ObjectWriterModifier。

部署失败,因为它找不到类com/fasterxml/jackson/jaxrs/cfg/ObjectWriterModifier

包含在我的WildFly 10安装的jackson-jaxrs-base-2.7.4.jar下的modules/system/layer/base/com/fasterxml/jackson/core/jaxrs/jackson-jaxrs-json-provider中。

在我的build.gradle中,我确实指定了依赖:

dependencies {
    providedCompile 'javax:javaee-api:7.0'
    providedCompile 'com.fasterxml.jackson.core:jackson-core:2.7.4'
    providedCompile 'com.fasterxml.jackson.core:jackson-annotations:2.7.4'
    providedCompile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.7.4'
}

这是jackson-jaxrs-json-provider

的module.xml
<module xmlns="urn:jboss:module:1.3" name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider">
     <resources>
        <resource-root path="jackson-jaxrs-json-provider-2.7.4.jar"/>
        <resource-root path="jackson-jaxrs-base-2.7.4.jar"/>
        <resource-root path="jackson-module-jaxb-annotations-2.7.4.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.ws.rs.api"/>
        <module name="javax.xml.bind.api"/>
        <module name="com.fasterxml.jackson.core.jackson-annotations"/>
        <module name="com.fasterxml.jackson.core.jackson-core"/>
        <module name="com.fasterxml.jackson.core.jackson-databind"/>
    </dependencies>
</module>

我不知道WildFly怎么找不到它提供的一个罐子里面的类

1 个答案:

答案 0 :(得分:1)

查看class loading documentation。您可能需要添加模块依赖项,因为所有模块都不会自动添加为部署依赖项。