org.omnifaces.filter
Class FacesExceptionFilter

java.lang.Object
  extended by org.omnifaces.filter.HttpFilter
      extended by org.omnifaces.filter.FacesExceptionFilter
All Implemented Interfaces:
javax.servlet.Filter

public class FacesExceptionFilter
extends HttpFilter

This filter will solve 2 problems with exceptions thrown in JSF methods.

  1. Mojarra's FacesFileNotFoundException needs to be interpreted as 404.
  2. Root cause needs to be unwrapped from FacesException (Mojarra) and ELException (MyFaces) to utilize standard Servlet API error page handling.

To get it to run, map this filter on the <servlet-name> of the FacesServlet.

 <filter>
   <filter-name>facesExceptionFilter</filter-name>
   <filter-class>org.omnifaces.filter.FacesExceptionFilter</filter-class>
 </filter>
 <filter-mapping>
   <filter-name>facesExceptionFilter</filter-name>
   <servlet-name>facesServlet</servlet-name>
 </filter-mapping>
 

Author:
Bauke Scholtz

Constructor Summary
FacesExceptionFilter()
           
 
Method Summary
 void doFilter(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.http.HttpSession session, javax.servlet.FilterChain chain)
          Filter the HTTP request.
 
Methods inherited from class org.omnifaces.filter.HttpFilter
destroy, doFilter, getFilterConfig, getInitParameter, getServletContext, init, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FacesExceptionFilter

public FacesExceptionFilter()
Method Detail

doFilter

public void doFilter(javax.servlet.http.HttpServletRequest request,
                     javax.servlet.http.HttpServletResponse response,
                     javax.servlet.http.HttpSession session,
                     javax.servlet.FilterChain chain)
              throws javax.servlet.ServletException,
                     java.io.IOException
Description copied from class: HttpFilter
Filter the HTTP request. The session argument is null if there is no session.

Specified by:
doFilter in class HttpFilter
Throws:
javax.servlet.ServletException
java.io.IOException
See Also:
Filter.doFilter(ServletRequest, ServletResponse, FilterChain)