Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf com.sun.faces.config.ConfigureListener的配置_Jsf_Jsf 2_Mojarra - Fatal编程技术网

Jsf com.sun.faces.config.ConfigureListener的配置

Jsf com.sun.faces.config.ConfigureListener的配置,jsf,jsf-2,mojarra,Jsf,Jsf 2,Mojarra,我正在回顾一个当前的JSF项目,web.xml配置包含: FacesServlet(在*.xhtml上配置) com.sun.faces.config.ConfigureListener 我正在使用JSF2.2和Mojarra实现 我对ConfigureListener感到困惑。配置中是否需要此类?这门课的目标是什么?我找不到任何信息,该类几乎没有javadoc 如果我删除这个配置,一切看起来都是一样的。因此,我猜想ConfigureListener可以或应该被删除,但我不确定 Config

我正在回顾一个当前的JSF项目,
web.xml
配置包含:

  • FacesServlet(在
    *.xhtml
    上配置)
  • com.sun.faces.config.ConfigureListener
我正在使用JSF2.2和Mojarra实现

我对
ConfigureListener
感到困惑。配置中是否需要此类?这门课的目标是什么?我找不到任何信息,该类几乎没有javadoc


如果我删除这个配置,一切看起来都是一样的。因此,我猜想
ConfigureListener
可以或应该被删除,但我不确定

ConfigureListener通常通过Mojarra实现JAR文件的
/META-INF/jsf_core.tld
文件自动注册。此外,
ConfigureListener
通过Servlet 3.0
ServletContainerInitializer
显式注册,以解决一个旧的GlassFish v3错误(注意:v3,而不是3.0.x,因此这是有史以来的第一个GF3版本)

存在通过
.tld
文件自动注册不足的情况。众所周知,当webapp部署到时。本问答中对此进行了详细解释:

另外,正如前面提到的,在详细的回答中,GlassFish v3有一个bug,其中TLD文件扫描得太晚,因此JSF无法在适当的时候进行必要的初始化。然后需要在webapp的
web.xml
中显式注册
ConfigureListener

但是,如果它在
web.xml
中没有明确注册时对您有效,那么就不要使用它。
web.xml
中的噪音越小越好。但是,如果您碰巧部署到了对上述问题敏感的容器中(因此,当您的webapp实际上是一个公开发布的应用程序,并且您无法控制目标容器的选择),那么您最好将其保留在“针对这种情况”中



更新:当在
web.xml
中启用此项时,Tomcat 8.x似乎显示出错误行为:此侦听器实际上将执行两次而不是一次。结果是灾难性的:除其他外,所有JSF事件监听器将注册两次,组件库将加载两次。这只会在运行时导致冲突。换句话说,在部署到Tomcat时,请确保此条目已从
web.xml

中删除。查找此条目谢谢您的回答。我意识到,
FacesServlet
实际上是在
/*.xhtml
上配置的。我更新了问题,不客气。我会仔细检查一下。这就是非法语法。我用正确的一个更新了Q。你(再次)是对的。对不起,我查得太快了。我有
*.xhtml
。对于ICEFaces 3.3.0和tomcat>=7.0.42,在web.xml中声明此侦听器会导致在每个页面上添加两次具有相同id的特定ICEFaces组件,从而导致错误。请参阅本论坛帖子:我可以确认同样的错误行为,即配置侦听器被创建两次,也发生在WebLogic 12.2.1.3上。从web.xml中删除侦听器可以解决此问题。