我的应用程序在 Apache MyFaces V2.0 上。应用服务器是 WebSphere V8.0。在使用如下 URL 进行安全测试期间,应用程序在浏览器中呈现错误,从而暴露应用程序服务器详细信息。我在 web.xml 中有以下条目。请提出一个解决方案来优雅地处理这种情况。
Web.xml
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/error.xhtml</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/error500.xhtml</location>
</error-page>
网址
localhost/app/test.xhtml?emailId=test1@abcd.com&clickSubmit=Save&javax.faces.ViewState=83eNclk%2FbIe05NjdSUOQtQqlm5FVhzOBEHXMRHzqXhuC7fG%2BpJS9xRI%2BxN9tCjZIPg2dA3%2B8Xdor%2Bj40Wjiy%2FxO3J%2Bu0lbQJFHXnGNxYwUUh102oPNugRXQAmHNJsjYDnxwh9w%3D%3D
错误:
错误页面异常
SRVE0260E: 服务器无法使用为您的应用程序指定的错误页面来处理下面打印的原始异常。
原始例外:
错误消息:javax.servlet.ServletException:/app/test.xhtml 找不到视图标识符的保存视图状态:/app/test.xhtml 错误代码:500 目标 Servlet:Faces Servlet 错误堆栈:javax.faces.application .ViewExpiredException org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.