Hi, you should probably write a filter or a phase-listener to deal with session-timeouts appropriately.
regards, Martin On Fri, Jul 18, 2008 at 7:01 PM, bansi <[EMAIL PROTECTED]> wrote: > > Hi Martin > Thanks for sharing your thoughts. My web.xml doesnt have any configuration > related to session timeout so i guess its uses default timeout. A code > snippet on how to do a post-back will be greatly appreciated > > > Martin Marinschek wrote: > > > > Hi, > > > > yes, I would dare to say this is expected behaviour, if you do a > > post-back (if you execute a get-link, then this shouldn't happen). In > > your web-application, you will need to cover the case of a timed-out > > session appropriately. > > > > regards, > > > > Martin > > > > On 7/18/08, bansi <[EMAIL PROTECTED]> 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-tp18518805p18518805.html > >> Sent from the MyFaces - Users mailing list archive at Nabble.com. > >> > >> > > > > > > -- > > > > http://www.irian.at > > > > Your JSF powerhouse - > > JSF Consulting, Development and > > Courses in English and German > > > > Professional Support for Apache MyFaces > > > > > > -- > View this message in context: > http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18533647.html > Sent from the MyFaces - Users mailing list archive at Nabble.com. > > -- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces