首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.omnifaces.facesviews.FacesViewsForwardingFilter的NullPointerException

org.omnifaces.facesviews.FacesViewsForwardingFilter的NullPointerException
EN

Stack Overflow用户
提问于 2015-02-11 18:01:32
回答 1查看 1.3K关注 0票数 4

我在WildFly 8.2上运行Java 7应用程序。我使用OmniFaces 1.8.1。我在日志文件中看到了与NullPointerExceptions相关的FacesViewsForwardingFilter

代码语言:javascript
复制
2015-02-11 15:42:22,870 ERROR [io.undertow.request] (default task-12) UT005023: Exception handling request to /login: java.lang.NullPointerException
        at org.omnifaces.facesviews.FacesViewsForwardingFilter.doFilter(FacesViewsForwardingFilter.java:122) [omnifaces-1.8.1.jar:1.8.1-20140603]
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77) [omnifaces-1.8.1.jar:1.8.1-20140603]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
代码语言:javascript
复制
2015-02-11 15:42:31,524 ERROR [io.undertow.request] (default task-15) UT005023: Exception handling request to /search.xhtml: java.lang.NullPointerException
        at org.omnifaces.facesviews.FacesViewsForwardingFilter.doFilter(FacesViewsForwardingFilter.java:153) [omnifaces-1.8.1.jar:1.8.1-20140603]
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77) [omnifaces-1.8.1.jar:1.8.1-20140603]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

在服务器启动期间,我看到了以下内容:

代码语言:javascript
复制
2015-02-11 12:28:35,667 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /terms/index: java.lang.IllegalStateException: Illegal attempt to set ViewHandler after a response has been rendered.
        at com.sun.faces.application.ApplicationImpl.setViewHandler(ApplicationImpl.java:583) [jsf-impl-2.2.8-jbossorg-1.jar:]
        at javax.faces.application.ApplicationWrapper.setViewHandler(ApplicationWrapper.java:288) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
        at org.jboss.as.jsf.injection.weld.ForwardingApplication.setViewHandler(ForwardingApplication.java:367) [wildfly-jsf-injection-8.2.0.Final.jar:8.2.0.Final]
        at org.omnifaces.facesviews.FacesViewsForwardingFilter.init(FacesViewsForwardingFilter.java:95) [omnifaces-1.8.1.jar:1.8.1-20140603]
        at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
        at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:85)

web.xml中的相关配置是:

代码语言:javascript
复制
<servlet>
    <servlet-name>facesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.xhtml</url-pattern>
    <url-pattern>/javax.faces.resource/*</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
    <param-value>/*.xhtml</param-value>
</context-param>

这是如何造成的,我如何解决呢?

EN

回答 1

Stack Overflow用户

发布于 2015-02-12 21:48:43

这些NPEs表明过滤器的初始化失败了。您应该能够在日志中的早期,在服务器启动期间找到线索。

2015-02-11 12:28:35,667错误io.undertow.request UT005023:对/terms/索引的异常处理请求: java.lang.IllegalStateException:在发出响应后非法尝试设置ViewHandler。

IllegalStateException是一个有用的提示。FacesViewsViewHandler是在OmniFaces 1.x中通过FacesViewsForwardingFilter延迟初始化的,该FacesViewsForwardingFilter在OmniFaces匹配的/*.xhtml上进行了第一次请求。但是,如果在筛选器之前调用FacesServlet,则该异常将失败。您有一个可疑的*.html映射,它将触发FacesServlet而不触发过滤器。您有一个简单的HTML页面作为欢迎文件吗?为什么不把它重命名为*.xhtml呢?

在任何情况下,初始化排序错误都是固定 2.0中的OmniFaces。因此,升级应该可以。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28461210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档