我在系统输出中得到以下消息:"FacesMessage(s)已被排队...."。
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>
但是由于某种原因,该解决方案不能与我正在使用的这个实现一起工作银鲈(1.2 _15-b01-fcs)。
这个文档说我需要简单地改变RenderResponsePhase的记录器。
消息已被编码…
本质上,我想我问的是什么是记录器类我需要配置的RenderResponsePhase
该上下文参数特定于IBM的Faces Client Framework,它是WebSphere的一部分。但你好像根本不用它。没有必要添加context参数。把它全部去掉
Mojarra使用java.util.logging
API作为记录器。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
将可记录级别1设置为"WARNING"。"FacesMessage(s)已被排队"消息是一个"INFO"消息。您需要重新启动服务器(以及IDE,如果有的话!)以使更改生效。
然而,我想知道禁用该功能有多有用。