1

我在 System out 中收到以下消息:“ FacesMessage(s) has been enqueued.... ”。

Sun 的 JavaServer Faces 实现 (1.2_07-b03-FCS) 的解决方案是将其添加到 web.xml:

<context-param>
    <description>
    Set to true to disable the following warning message:
    FacesMessage(s) have been enqueued, but may not have been displayed
    </description>
    <param-name>com.ibm.ws.jsf.disableEnqueuedMessagesWarning</param-name>
    <param-value>true</param-value>
</context-param>

但由于某种原因,该解决方案不适用于我正在使用 Mojarra (1.2_15-b01-FCS) 的这个实现。

该文档说我需要简单地更改 RenderResponsePhase 的记录器。
Faces Message(s) 已被编码...

本质上,我想我问的是我需要为 RenderResponsePhase 配置的记录器类是什么。

4

1 回答 1

5

该上下文参数特定于 IBM 的 Faces Client Framework,它是 WebSphere 的一部分。但是您似乎根本没有使用它。添加该上下文参数没有意义。完全删除它。

Mojarra 使用java.util.loggingAPI 作为记录器。JSF 生命周期记录器(RenderResponsePhase正在使用)的记录​​器名称是:

javax.enterprise.resource.webcontainer.jsf.lifecycle

记录器可以通过JRE/lib/logging.properties文件进行配置。您首先需要确定您的服务器环境正在使用什么 JRE(注意:JDK 也有一个 JRE!),然后JRE/lib/logging.properties相应地编辑其文件以添加以下行:

javax.enterprise.resource.webcontainer.jsf.lifecycle.level = WARNING

这会将可记录级别设置为“警告”。“FacesMessage(s) has been enqueued”消息是一个即“INFO”。您需要重新启动服务器(以及 IDE,如果有的话!)以使更改生效。

然而,我想知道禁用它有多大用处。您试图隐藏的“问题”的根本原因可能会以不同的方式解决。

于 2011-08-23T14:54:47.063 回答