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.
>
>

Reply via email to