0

I would like to handle ViewExpiredException on non-ajax requests (PrimeFaces with ajax="false"). I've configured an error page on that exception in web.xml:

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/errorpages/expired.xhtml</location>
</error-page>

When the view expired exception occurs, the following is logged:

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/3c] threw exception [viewId:/login/Login.xhtml - View /login/Login.xhtml could not be restored.] with root cause javax.faces.application.ViewExpiredException: viewId:/login/Login.xhtml - View /login/Login.xhtml could not be restored. at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:722)

However, instead of the error page content, the browser shows a yellow page with message:

XML Parsing Error: no element found
Location: http://example.com:8080/3c/login/Login.xhtml Line Number 1, Column 1:

Why is the content of /errorpages/expired.xhtml not shown?

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
user3696143
  • 301
  • 2
  • 6
  • 23
  • No i am not able to see any line in console and its not ajax request I just press the button which is nonajax request because i made `ajax="false"` – user3696143 Jul 23 '14 at 07:21
  • Ok my mistake let me try with ajax request as well ...can not i made changes so that omnifaes error handling will work with ajax and nonajax request – user3696143 Jul 23 '14 at 07:24
  • ANy idea how to test if the Normal exception handling working or not ? – user3696143 Jul 23 '14 at 07:49
  • Hmm but it is also true "smart and eager" these word perfectly fit on you as well :) – user3696143 Jul 23 '14 at 07:57
  • Oh that ,i do not know and Stack Exchange will not answer me why @BalusC not eager now :( A expert in lots of Java technology . – user3696143 Jul 23 '14 at 08:00

0 Answers0