For some reason my
<error-page>
<error-code>404</error-code>
<location>/error/error.html</location>
</error-page>
which is defined in tomcat\conf\web.xml is being ignored when I'm trying to
access the following path
WebAppName/javax.faces.resource/anyFileName.jsf
I know that its cause of the *javax.faces.resource* prefix and the *.jsf*
suffix combined together...
cause if I change one of them I do get the custom error page
I do know that its not a common path to pick, but still I wonder how can I
make it use my custom error-page
b.t.w , I'm using *myfaces 2.0.11*
I found one way to overcome it by using implementing custom filter and
setting response.sendError(404.... but Its not a good solution IMO , cause
I need to use "new File" each time to check for existence and add some
logic for converting the .jsf to xhtml or omitting .jsf before checking the
".exists()" for the file
this is a code snippet:
String path = ((HttpServletRequest) req).getServletPath();
if (((HttpServletRequest)
req).getRequestURI().contains("javax.faces.resource")
&& !new
File(getFilterConfig().getServletContext().getRealPath(path)).exists()) {
HttpServletResponse response = (HttpServletResponse) res;
response.sendError(404, "Cannot find " + path);
} else {
chain.doFilter(req, res);
}
Is there any other better way to use the Custom <error-page> for path of
the type "WebAppName/javax.faces.resource/anyFileName.jsf"
Regards,
Daniel.