this entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may help you to build a session timeout handling infrastructure... also, you can handle ajax requests by this session expired controller filter...
Regards, Hasan... www.jroller.com/hasant On Mon, Jul 21, 2008 at 11:58 PM, bansi <[EMAIL PROTECTED]> wrote: > > Thanks for your suggestion. I am planning to write a filter but before that > i > have to get rid of ViewExpired Excpetion. Any pointers/suggestions to > resolve the error will be greatly appreciated > Here is the stack trace > 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] - <An > exception occurred> > javax.faces.application.ViewExpiredException: /addressRegistryForm.facesThe > expected view was not returned for the view identifier: > /addressRegistryForm.faces > at > > org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88) > at > > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) > at > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147) > at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256) > at > > org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362) > at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > at > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > > com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > 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:595) > > > bansi wrote: > > > > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as > > suggested by Cagatay Civici in one of his articles i.e. > > > http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/ > > > > If the session times out, JSF throws a ViewExpiredException during the > > RESTORE_VIEW phase. > > > > > > Here is the snippet from my LoginPhaseListener. The exception is thrown > > from afterPhase method > > > > /** > > * After phase. > > * > > * @param pe > > * the pe > > * @see > > javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent) > > */ > > public void afterPhase(final PhaseEvent pe) > > { > > final FacesContext facesContext = pe.getFacesContext(); > > final String viewId = > > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception > > if (viewId.endsWith("login.xhtml")) > > { > > final String managedBeanName = > > getManagedBeanNameFromView(viewId); > > final Object object = > > facesContext.getApplication().createValueBinding("#{" + managedBeanName + > > "}") > > .getValue(facesContext); > > if (object == null) > > { > > logger.error("OnPageLoad cannot be executed, no such > > managed bean:" + managedBeanName); > > } else > > { > > final Login loginBean = (Login) object; > > loginBean.onPageLoad(); > > } > > } else > > { > > final String managedBeanName = > > getManagedBeanNameFromView(viewId); > > final String BackingBeanName = managedBeanName.substring(0, > > 1).toUpperCase() > > + managedBeanName.substring(1, > > managedBeanName.length()); > > } > > } > > > > > > /** > > * Gets the managed bean name from view. > > * > > * @param viewId > > * the view id > > * @return the managed bean name from view > > */ > > public String getManagedBeanNameFromView(final String viewId) > > { > > String pageName; > > if (viewId.endsWith("login.xhtml")) > > { > > pageName = viewId.substring(1, viewId.length() - 6); > > } else > > { > > pageName = viewId.substring(1, viewId.length() - 10); > > } > > return pageName + "Bean"; > > } > > > > Here is the stack trace > > > > 2008-07-15 10:31:12,192 ERROR > > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in > > PhaseListener RESTORE_VIEW(1) afterPhase> > > java.lang.NullPointerException > > at > > > com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47) > > at > > > org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92) > > at > > > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107) > > at > > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147) > > at > org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256) > > at > > > org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362) > > at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > > at > > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > > 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:595) > > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An > > exception occurred> > > javax.faces.application.ViewExpiredException: /deviceForm.facesThe > > expected view was not returned for the view identifier: /deviceForm.faces > > at > > > org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88) > > at > > > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) > > at > > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147) > > at > org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256) > > at > > > org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362) > > at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > > at > > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > > 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:595) > > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An > > exception occurred> > > javax.faces.application.ViewExpiredException: /deviceForm.facesThe > > expected view was not returned for the view identifier: /deviceForm.faces > > at > > > org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88) > > at > > > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) > > at > > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147) > > at > org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256) > > at > > > org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362) > > at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > > at > > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > > 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:595) > > 2008-07-15 10:31:12,348 WARN > > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces > > special javascript could not be retrieved from request-map.> > > > > > > -- > View this message in context: > http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html > Sent from the MyFaces - Users mailing list archive at Nabble.com. > >

