Wildfly无法识别jboss部署结构文件

时间:2015-02-23 15:08:44

标签: wildfly wildfly-8

我正在尝试将Wildfly配置为使用每个部署日志记录和jackson作为json on resteasy的提供程序,但看起来AS无法识别文件“jboss-deployment-structure.xml”。

我想记录hibernate sql,我已经将“<property name="hibernate.show_sql" value="true"/>”放在persistence.xml中。

对杰克逊来说,我使用以下方法:

    @GET
    @Path("/resumodia")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes("*/*")
    @GZIP
    public Response resumoHorariosDoDia() {
        try {
            final ResumoHorariosUsuarioDoDia resumoHorariosDoDia = geradorDeResumoHorarios.getResumoHorariosDoDia(new Date());

            return Response.status(OK).entity(resumoHorariosDoDia).build();
        } catch (Exception e) {
            return Response.status(INTERNAL_SERVER_ERROR).entity("Erro ao processar a requisição: " + e.getMessage()).build();
        }
    }

该方法有效,但它忽略了我在返回的对象上使用的json注释,如@JsonIgnore

文件就是这个:

<jboss-deployment-structure>
    <deployment>
        <exclude-subsystems>
            <subsystem name="logging" />
        </exclude-subsystems>
        <exclusions>
            <module name="org.jboss.resteasy.resteasy-jackson-provider"/>
            <module name="org.jboss.resteasy.resteasy-jettison-provider"/>
        </exclusions>
        <dependencies>
            <module name="org.apache.log4j"/>
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

我将文件放在WEB-INF中,但它继续使用wildfly日志记录并忽略我的log4j.xml。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM
        "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://jakarta.apache.org/log4j/
http://jakarta.apache.org/log4j/ ">

    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %5p [%-20c{1}] %m%n"/>
        </layout>
    </appender>

    <category name="br.com.caelum">
        <priority value="INFO"/>
        <appender-ref ref="stdout"/>
    </category>

    <category name="org.hibernate">
        <priority value="INFO"/>
        <appender-ref ref="stdout"/>
    </category>

    <category name="org.hibernate.SQL">
        <priority value="DEBUG"/>
        <appender-ref ref="stdout"/>
    </category>

    <category name="org.jboss">
        <priority value="INFO"/>
        <appender-ref ref="stdout"/>
    </category>

    <category name="org.razor.cponto">
        <priority value="INFO"/>
        <appender-ref ref="stdout"/>
    </category>

</log4j:configuration>

我正在使用VRaptor 4

1 个答案:

答案 0 :(得分:0)

如果您只想使用每个部署日志记录,只需将log4j.xml文件与您的部署打包在一起,就不需要弄乱部署描述符。然而,我注意到你的log4j配置试图附加到stdout而不是特定于这个特定部署的实际日志文件,所以它可能实际上正在使用你的新配置,但随后只是被合并到主要由于缺乏合适的appender而导致jboss日志记录