我使用的是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)
答案 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),并查看其错误处理中的错误是否已解决。