If your error page contains JSF then the location should use the .jsf
extension (or whatever url mapping the FacesServlet is configured to use):
<error-page>
<error-code>404</error-code>
<location>/resources/pages/fileNotFound.jsf</location>
</error-page>
etc.
-Guy.
On 23/08/2006 10:37, Wolf Benz wrote:
Hi,
Browsing through earlier posts, it appears that if you specify an
error-page in the web.xml <http://web.xml> AND IF this page contains jsf
tags (pure jsp & html goes aparently fine), MyFaces throws an Exception.
I've experienced this myself too. Is there a remedy/fix planned?
The code:
In my web.xml <http://web.xml> I have:
/<!-- For Error Handling: for both general java exceptions and the Page
Not Found case: -->/
/<error-page> /
/<error-code>404</error-code> /
/<location>/resources/pages/fileNotFound.jsp</location> /
/</error-page> /
/<error-page> /
/<exception-type>java.lang.Exception</exception-type> /
/<location>/resources/pages/generalJavaErrorPage.jsp</location> /
/</error-page>/
E.g. the fileNotFound page features:
/<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>/
/<jsp:root / /xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"/
/xmlns="http://www.w3.org/1999/xhtml" /
/xmlns:f="http://java.sun.com/jsf/core" /
/ / /xmlns:h="http://java.sun.com/jsf/html"/
/ / /xmlns:t="http://myfaces.apache.org/tomahawk" >/
/
/
/<jsp:directive.page contentType="text/html;charset=utf-8"/>/
/<html>/
/<head>/
/<link href="../css/befimmo.css" rel="stylesheet" type="text/css"/>/
/</head>/
/
/
/<body topmargin="0" leftmargin="0" rightmargin="0" marginheight="0"
marginwidth="0" class="body">/
/
/
/<f:view>/
/<f:loadBundle basename="x.y.z" var="labels" />/
/<f:subview id="header">/
/<jsp:include page="./header.jsp" />/
/</f:subview>/
/
/
/ / /<h:form id="pageNotFoundForm">/
/ /
/ / /<table align="center" >/
/ / /<tr> /
/ / /<td style="vertical-align:middle;" colspan="2">/
/<h3><h:outputLabel value="#{labels.error_Title}" /></h3>/
/</td>/
/ / /</tr>/
/ / /<tr>/
/ / /<td align="center" colspan="5" >/
/ / /<h:outputLabel value="#{labels.error_BadURLTit}" /> /
/ / /</td>/
/ / /</tr>/
/ / /<tr>/
/ / /<td align="center" width="90%" colspan="3" valign="middle"
style="error">/
/ / /<h:outputLabel value="#{labels.error_BadURL1} "/> /
/<jsp:expression>request.getRequestURL()</jsp:expression>,/
/ / /<h:outputLabel value=" #{labels.error_BadURL2}"/>/
/ / /</td>/
/ / /</tr>/
/ / /</table>/
/ / /</h:form>/
/<f:subview id="footer">/
/<jsp:include page="./footer.jsp" />/
/</f:subview>/
/</f:view>/
/</body>/
/</html>/
/</jsp:root>/
_______________
The error I'm getting is:
/2006-08-23 11:28:05,661 ERROR [javax.faces.webapp.UIComponentTag] -
Faces context not found. getResponseWriter will fail. Check if the
FacesServlet has been initialized at all in your web.xml <http://web.xml>./
/2006-08-23 11:28:05,697 ERROR
[org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Mnemonica].[jsp]]
- Servlet.service() for servlet jsp threw exception/
/java.lang.NullPointerException/
/at
javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:929)/
/at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:310)/
/at org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:70)/
/at
org.apache.jsp.resources.pages.fileNotFound_jsp._jspService(fileNotFound_jsp.java:80)/
/at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)/
/at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)/
/at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)/
/at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)/
/at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)/
/at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)/
/at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)/
/at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)/
/at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)/
/at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)/
/at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)/
/at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)/
/at
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)/
/at
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:284)/
/at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)/
/at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)/
/at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)/
/at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)/
/at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)/
/at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)/
/at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)/
/at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)/
/at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)/
/at java.lang.Thread.run(Thread.java:613)/
/Aug 23, 2006 11:28:05 AM org.apache.catalina.core.StandardHostValve custom/
/SEVERE: Exception Processing ErrorPage[errorCode=404,
location=/resources/pages/fileNotFound.jsp]/
/org.apache.jasper.JasperException: Exception in JSP:
/resources/pages/fileNotFound.jsp:18/
/
/
/15: /
/16: / /<body topmargin="0" leftmargin="0" rightmargin="0"
marginheight="0" marginwidth="0" class="body">/
/17: /
/18: / /<f:view>/
/19: /
/20: / /<f:loadBundle basename="be.mnemonica.web.conf.mnemonica
<http://web.conf.mnemonica>" var="labels" />/
/21: / /<f:subview id="header">/
/
/
/
/
/Stacktrace:/
/at
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)/
/at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)/
/at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)/
/at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)/
/at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)/
/at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)/
/at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)/
/at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)/
/at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)/
/at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)/
/at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)/
/at
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)/
/at
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:284)/
/at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)/
/at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)/
/at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)/
/at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)/
/at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)/
/at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)/
/at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)/
/at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)/
/at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)/
/at java.lang.Thread.run(Thread.java:613)/