java.lang.NullPointerException 在 javax.faces.webapp._ErrorPageWriter.writeVariables
java.lang.NullPointerException at javax.faces.webapp._ErrorPageWriter.writeVariables
我正在使用 Richfaces 3.3.1 和 MyFaces 1.2。
我需要在我的 JSF 表单中添加文件上传。
我制作了一个简单的 JSF 表单,其中只有一个标签 rich:fileupload,正确地是 运行,我也添加了 Listener,文件保存在我添加的路径中。
但是,当我尝试在页面中添加一些其他标签时,我得到了一个我无法弄清楚的异常。
java.lang.NullPointerException
at javax.faces.webapp._ErrorPageWriter.writeVariables(_ErrorPageWriter.java:329)
at javax.faces.webapp._ErrorPageWriter.writeVariables(_ErrorPageWriter.java:305)
at javax.faces.webapp._ErrorPageWriter.debugHtml(_ErrorPageWriter.java:187)
at javax.faces.webapp._ErrorPageWriter.handleThrowable(_ErrorPageWriter.java:494)
at javax.faces.webapp._ErrorPageWriter.handleException(_ErrorPageWriter.java:479)
at javax.faces.webapp.FacesServlet.handleLifecycleException(FacesServlet.java:294)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:192)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:347)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
这是由 MyFaces 错误处理程序本身的错误引起的。
您的代码某处发生异常。 MyFaces 试图呈现一个 "nice" 错误页面,其中包含一些调试信息以及所有关于该异常的信息。但是,在 "nice" 错误页面的呈现过程中,它出现了 NullPointerException 错误,因此它无法完成通知您该异常的工作。有关该底层异常的所有详细信息显然已完全丢失。
这确实没有帮助。您现在可以根据 MyFaces documentation:
通过将以下条目添加到 webapp 的 web.xml
来禁用 MyFaces "nice" 错误页面
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>false</param-value>
</context-param>
这应该会向您显示服务器默认错误页面,其中包含有关实际异常的详细信息,以便您最终可以按照通常的方式进行调查和修复。
您也可以尝试将 MyFaces 1.2 升级到最新的 1.2.x 可用,目前是 1.2.12,看看它的错误处理中的错误是否在那里解决了。
我正在使用 Richfaces 3.3.1 和 MyFaces 1.2。 我需要在我的 JSF 表单中添加文件上传。 我制作了一个简单的 JSF 表单,其中只有一个标签 rich:fileupload,正确地是 运行,我也添加了 Listener,文件保存在我添加的路径中。 但是,当我尝试在页面中添加一些其他标签时,我得到了一个我无法弄清楚的异常。
java.lang.NullPointerException
at javax.faces.webapp._ErrorPageWriter.writeVariables(_ErrorPageWriter.java:329)
at javax.faces.webapp._ErrorPageWriter.writeVariables(_ErrorPageWriter.java:305)
at javax.faces.webapp._ErrorPageWriter.debugHtml(_ErrorPageWriter.java:187)
at javax.faces.webapp._ErrorPageWriter.handleThrowable(_ErrorPageWriter.java:494)
at javax.faces.webapp._ErrorPageWriter.handleException(_ErrorPageWriter.java:479)
at javax.faces.webapp.FacesServlet.handleLifecycleException(FacesServlet.java:294)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:192)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:347)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
这是由 MyFaces 错误处理程序本身的错误引起的。
您的代码某处发生异常。 MyFaces 试图呈现一个 "nice" 错误页面,其中包含一些调试信息以及所有关于该异常的信息。但是,在 "nice" 错误页面的呈现过程中,它出现了 NullPointerException 错误,因此它无法完成通知您该异常的工作。有关该底层异常的所有详细信息显然已完全丢失。
这确实没有帮助。您现在可以根据 MyFaces documentation:
通过将以下条目添加到 webapp 的web.xml
来禁用 MyFaces "nice" 错误页面
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>false</param-value>
</context-param>
这应该会向您显示服务器默认错误页面,其中包含有关实际异常的详细信息,以便您最终可以按照通常的方式进行调查和修复。
您也可以尝试将 MyFaces 1.2 升级到最新的 1.2.x 可用,目前是 1.2.12,看看它的错误处理中的错误是否在那里解决了。