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

时间:2015-08-10 12:03:18

标签: jsf richfaces myfaces

我使用的是Richfaces 3.3.1和MyFaces 1.2。 我需要在我的JSF表单中添加文件上传。 我做了一个简单的JSF表单,其中只有一个富有的标签: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)

1 个答案:

答案 0 :(得分:3)

这是由MyFaces错误处理程序本身的错误引起的。

代码中的某处发生了异常。 MyFaces试图渲染一个“漂亮”的错误页面,其中包含一些调试信息和所有关于该异常的信息。但是,在呈现“漂亮”错误页面时,它会出现NullPointerException错误,因此无法完成作业以通知您该异常。有关该潜在异常的所有细节显然已完全丢失。

这确实没有帮助。您现在可以根据MyFaces documentation:

将以下条目添加到webapp的web.xml,以禁用MyFaces“漂亮”错误页面
<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),并查看其错误处理中的错误是否已解决。