jsf - 已经为此上下文配置了监听器 “com.sun.faces.config.ConfigureListener”。重复定义已被忽略

标签 jsf jakarta-ee jsf-2 web.xml

运行我的应用程序时,我得到以下信息:

The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored.

我想知道造成这种错误的原因是什么?

最佳答案

首先,这是警告,而不是错误。差异非常大。该Web应用程序可以继续运行。警告仅是为了通知开发人员与预期/自然行为不同的情况,这些情况不一定会破坏功能。这对于开发人员不了解配置和/或其后果的情况非常有用。
该监听器通常由JSF TLD文件和ServletContainerInitializer自动注册。如果您实际上已在Webapp的web.xml中显式注册了相同的监听器,则可以收到此警告消息。
此警告无害。它基本上是在告诉您,您不需要在Webapp的web.xml中为特定的目标servlet容器显式注册监听器。您可以从Web应用程序的<listener>中安全地删除有问题的web.xml条目。
但是,在某些情况下(例如,当打算将webapp部署到无法从TLD正确加载监听器和/或不支持ServletContainerInitializer的有问题的servlet容器时),必须进行显式注册。
也可以看看:

  • could not find Factory: javax.faces.context.FacesContextFactory
  • 关于jsf - 已经为此上下文配置了监听器 “com.sun.faces.config.ConfigureListener”。重复定义已被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8716352/

    相关文章:

    java - Id 是 JSF 2 标记的必需属性吗?

    jsf - 如何使用 p :schedule correctly?

    java - 将 EJB 和 Servlet 用于 Web 应用程序的首选方法是什么?

    java - 如何指定特定的 JAXB 实现?

    jsf - @FacesValidator 和 @FacesConverter 中的 EJB 和 CDI 注入(inject)点无法通过较新版本的 JSF 中的 OmniFaces 工作

    jsf - 如何在 JSF 中显示我的应用程序的错误?

    java - 如何将请求中的特殊字符发送到 servlet

    jsf - 自定义用户界面 :include rendering to add prefix/postfix

    jquery - RichFaces 4 替换 <a4j :loadScript>

    ajax - 类路径中的 ICEfaces 库可防止文件下载时弹出“另存为”对话框