繁体   English   中英

javax.faces.webapp._ErrorPageWriter.writeVariables上的java.lang.NullPointerException

[英]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”错误页面的过程中,它出现了NullPointerException错误,因此无法完成通知该异常的工作。 有关该基本异常的所有细节显然都完全丢失了。

这确实没有帮助。 您现在可以按照MyFaces文档,通过将以下条目添加到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),并查看其错误处理中的错误是否在那里解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM