NullPointerException异常:在com.sun.faces.context.flash.ELFlash.loggingGetPhaseMapForReading处。

7

我正在使用JSF-2.1.2在Apache Tomcat 7.0.16上运行我的应用程序。在faces-config.xml中添加导航规则后,我遇到了NullPointerException异常。此错误已在JSF论坛中记录。是否有JSF与Tomcat应用服务器之间的兼容版本或解决方案?以下是错误堆栈跟踪:

java.lang.NullPointerException
    at com.sun.faces.context.flash.ELFlash.loggingGetPhaseMapForReading(ELFlash.java:793)
    at com.sun.faces.context.flash.ELFlash.getPhaseMapForReading(ELFlash.java:826)
    at com.sun.faces.context.flash.ELFlash.isEmpty(ELFlash.java:484)
    at com.sun.faces.facelets.util.DevTools.writeVariables(DevTools.java:325)
    at com.sun.faces.facelets.util.DevTools.writeVariables(DevTools.java:215)
    at com.sun.faces.facelets.util.DevTools.debugHtml(DevTools.java:130)
    at com.sun.faces.renderkit.RenderKitUtils.renderHtmlErrorPage(RenderKitUtils.java:1159)
    at com.sun.faces.context.ExceptionHandlerImpl.throwIt(ExceptionHandlerImpl.java:269)
    at com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:141)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546)
    at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:364)
    at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)

添加导航规则后?立即显示它们(顺便问一下,您是否知道隐式导航支持?)。您在谈论哪个已提交的错误? - BalusC
没有解决方案吗?我也遇到了与Tomcat 6.0.33相同的问题。 - Kijewski
3个回答

1

Tomcat 7.0.26和JSF 2.1.7出现了相同的问题。使用JSF 2.0.9可以解决。

最初只是进行了配置。

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.7</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.7</version>
    </dependency>

但是出现了java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config错误

只有在尝试添加jstl依赖后,我才遇到了NullPointerException。回滚到JSF 2.0.9之后,我也删除了对jstl的依赖。


1
最近,我遇到了一个类似的问题,出现了相同的错误堆栈。当我遇到这个错误时,<welcome-file-list> 的条目是这样的:

<welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

然而,当我将输入更改为(表示前导)时,错误消失了:

<welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>

0

我曾面临同样的问题。通过以下方法修改faces-config.xml,我已经解决了它

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">


</faces-config>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接