public class FacesExceptionFilter extends HttpFilter
The FacesExceptionFilter will solve 2 problems with exceptions thrown in JSF methods.
FacesFileNotFoundException needs to be interpreted as 404.
FacesException and ELException to utilize standard
Servlet API error page handling.
Noted should be that this filter won't run on exceptions thrown during ajax requests. To handle them using
web.xml configured error pages, use FullAjaxExceptionHandler.
Since version 3.2, the FacesExceptionFilter also logs exceptions with an UUID and IP via the
logException(HttpServletRequest, Throwable, String, String, Object...) method. The UUID is in turn available
in EL by #{requestScope['org.omnifaces.exception_uuid']}.
To get it to run, map this filter on an <url-pattern> of /* in web.xml.
<filter>
<filter-name>facesExceptionFilter</filter-name>
<filter-class>org.omnifaces.filter.FacesExceptionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>facesExceptionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Please refer the "Error pages" section of the FullAjaxExceptionHandler javadoc for recommended error page
configuration.
Please refer the "Configuration" section of the FullAjaxExceptionHandler javadoc for available context
parameters.
FacesExceptionFilter
If more fine grained control is desired for logging the exception, then the developer can opt to extend this
FacesExceptionFilter and override one or more of the following protected methods:
FullAjaxExceptionHandler,
HttpFilter| Constructor and Description |
|---|
FacesExceptionFilter() |
| Modifier and Type | Method and Description |
|---|---|
void |
doFilter(HttpServletRequest request,
HttpServletResponse response,
HttpSession session,
FilterChain chain)
Filter the HTTP request.
|
void |
init()
Convenience init() method without FilterConfig parameter which will be called by init(FilterConfig).
|
protected void |
logException(HttpServletRequest request,
Throwable exception,
String location,
String message,
Object... parameters)
Log the thrown exception and determined error page location with the given message, optionally parameterized
with the given parameters.
|
destroy, doFilter, getFilterConfig, getInitParameter, getServletContext, initpublic void init()
throws ServletException
HttpFilterinit in class HttpFilterServletException - When filter's initialization failed.public void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain) throws ServletException, IOException
HttpFilternull if there is no session.doFilter in class HttpFilterrequest - The HTTP request.response - The HTTP response.session - The HTTP session, if any, else null.chain - The filter chain to continue.ServletException - As wrapper exception when something fails in the request processing.IOException - Whenever something fails at I/O level.Filter.doFilter(ServletRequest, ServletResponse, FilterChain)protected void logException(HttpServletRequest request, Throwable exception, String location, String message, Object... parameters)
java.util.logging as SEVERE when the thrown exception is
not an instance of any type specified in context parameter
"org.omnifaces.EXCEPTION_TYPES_TO_IGNORE_IN_LOGGING".
The log message will be prepended with the UUID and IP address.
The UUID is available in EL by #{requestScope['org.omnifaces.exception_uuid']}.request - The involved servlet request.exception - The exception to log.location - The error page location.message - The log message.parameters - The log message parameters, if any. They are formatted using Formatter.Copyright © 2012–2020 OmniFaces. All rights reserved.