【问题标题】:Wildfly doesn't recognize jboss deployment structure fileWildfly 无法识别 jboss 部署结构文件
【发布时间】:2015-04-24 22:57:21
【问题描述】:

我正在尝试将 Wildfly 配置为使用每个部署日志记录和 jackson 作为 resteasy 上 json 的提供者,但看起来 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

【问题讨论】:

    标签: wildfly wildfly-8


    【解决方案1】:

    如果您只是想使用每个部署的日志记录,只需将 log4j.xml 文件与您的部署打包在一起,就不需要搞乱部署描述符。但是我注意到的是,您的 log4j 配置正在尝试附加到标准输出,而不是附加到特定于此特定部署的实际日志文件,因此它很可能实际上是在使用您的新配置,但随后只是被合并到主由于缺少合适的 appender 而导致 jboss 日志记录

    【讨论】:

    • 看起来你是对的,当我为文件创建附加程序时,文件由 log4j 创建,但日志既不会进入文件也不会进入控制台。
    • 你能发布一个小规模的示例项目作为测试吗?
    • 实际上,看起来你的 log4j 配置定义了一个 appender,但实际上并没有将它附加到任何东西上
    • 什么意思? “”不是将它附加到类别吗?
    猜你喜欢
    • 1970-01-01
    • 2016-05-01
    • 2013-12-11
    • 2012-11-15
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多