【问题标题】:How to catch a FacesFileNotFoundException?如何捕捉 Face FileNotFoundException?
【发布时间】:2011-03-07 12:38:26
【问题描述】:

我怎样才能抓到

com.sun.faces.context.FacesFileNotFoundException

在 Java EE Web 应用程序中?

我尝试在我的 web.xml 文件中添加以下行,但没有成功:

  ...
  <error-page>
    <error-code>404</error-code>
    <location>/404.jsf</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/404.jsf</location>
  </error-page>
  <error-page>
    <exception-type>FacesFileNotFoundException</exception-type>
    <location>/404.jsf</location>
  </error-page>
  <error-page>
    <exception-type>FileNotFoundException</exception-type>
    <location>/404.jsf</location>
  </error-page>
  <error-page>
    <exception-type>FailingHttpStatusCodeException</exception-type>
    <location>/404.jsf</location>
  </error-page>
</web-app>

【问题讨论】:

    标签: exception jsf jakarta-ee try-catch filenotfoundexception


    【解决方案1】:

    您需要指定 FQN(Full Qualified Name),而不仅仅是 N 作为异常类型。

    <exception-type>com.sun.faces.context.FacesFileNotFoundException</exception-type>
    

    或者,如果您已经碰巧使用了OmniFaces,请注册其FacesExceptionFilter,然后FacesFileNotFoundException 将被处理为404。

    【讨论】:

    • 究竟发生了什么?
    • 输出如下: 1. StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet 抛出异常 com.sun.faces.context.FacesFileNotFoundException 2. PWC1231: Servlet。 servlet Faces Servlet 的 service() 引发异常 3。 org.apache.catalina.core.StandardHostValve@16933312: 异常处理 ErrorPage[exceptionType=com.sun.faces.context.FacesFileNotFoundException, location=/404.jsf] javax.servlet。 ServletException:上下文已经在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:422) 处处于活动状态
    • 将其改为纯 JSP/HTML 页面并重试。
    • 这行得通!!!我认为这是因为我想将 JSF 用于 JSF 异常,这是不可能的,因为 JSF 已经崩溃(由于异常)!?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-03-18
    • 2017-04-22
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2017-07-15
    相关资源
    最近更新 更多