Suggestion:

1 - add a javascript state change listener;
2 - check the contents of the request using TrXMLRequestEvent
getResponseText() and/or getResponseStatusCode()
3 - if the result isn't a PPR result, notify the user or send the browser to
a specified url.

I'm planing to write something like that in a couple of weeks. Please reply
if you think it will not work.

Regards,

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br



On Fri, Mar 13, 2009 at 4:24 AM, Simon Kitching <skitch...@apache.org>wrote:

> Hi,
>
> The solution I use is to put a "ping" script in the page which sends a
> request to the server every couple of minutes. With that, the session
> never times out while the browser window is open, and so the problem
> never occurs.
>
> Of course this requires javascript, but is javascript is disabled then
> so are all AJAX operations so then your filter will handle everything ok.
>
> I don't know of any solution to properly handle session-timeout for ajax
> requests. However I don't use ajax much. Maybe one of the ajax experts
> here can comment on that...
>
> Regards,
> Simon
>
> Ravizzz schrieb:
> > Simon,
> >
> > You are right, Except the links to other jsp/html pages all other
> components
> > like table and tabs give us this problem. Do you know any sort of
> solution
> > for this?
> >
> >
> > Simon Kitching wrote:
> >> My guess is that your timeout-handling approach is failing to work with
> >> any AJAX or frame-based pages, and that these tabs are just one case
> >> where ajax or frames are being used.
> >>
> >> The problem is that when a browser is refreshing a whole page, a filter
> >> can return an http-redirect command and the browser will then replace
> >> the current page with the redirected-to url.
> >>
> >> When the browser is just fetching a frame, only the frame contents will
> >> get directed, not the whole frameset.
> >>
> >> And when a browser is using XmlHttpRequest to do an AJAX operation,
> >> there is no obvious way for a filter to tell the browser to give up and
> >> redirect the current window to a new url. At least not one I know of (I
> >> presume sending back an http-redirect doesn't work..)
> >>
> >> Regards,
> >> Simon
> >>
> >> Ravizzz schrieb:
> >>> We have implemented similar way of session timeout in our application
> >>> using
> >>> filter in web.xml.
> >>>
> >>> But we are facing one problem with this way of timeout.
> >>>
> >>> Once Session expires proper logout doesn’t not happen while clicking on
> >>> tabs
> >>> created in jspx using \<tr:panelTabbed\> tags
> >>>
> >>>
> >>> This is very specifically for the tabs and everything works fine while
> >>> clicking on link or buttons etc
> >>>
> >>> In server logs we get Session Timed Out message, however at UI nothing
> >>> happens, same teb is displayed and never logs out.
> >>>
> >>> Additionally we get the below message in logs:-
> >>>
> >>> [3/4/09 16:19:01:125 IST] 00000035 StateManagerI E
> >>> org.apache.myfaces.trinidadinternal.application.StateManagerImpl
> >>> restoreView
> >>> Could not find saved view state for token -1909e0a
> >>>
> >>> Any help or pointers would be appreciated.
> >>>
> >>>
> >>> chrishane wrote:
> >>>> I have a generic search screen (standard input form) that displays the
> >>>> results on the "next" page using a <tr:table>.
> >>>>
> >>>> If the user hits the refresh button any time prior to the HTTPSession
> >>>> timeout, then the form is resubmitted and the search generated again
> >>>> (could
> >>>> display different results if the underlying data has been updated -
> >>>> which
> >>>> is what we want to happen).
> >>>>
> >>>> If the user leaves (for a time greater than the HTTPSession timeout)
> the
> >>>> results screen, comes back and hits the refresh button after the
> >>>> timeout,
> >>>> the "Find" screen is displayed again.
> >>>>
> >>>> I am using Trinidad 1.0 Myfaces 1.1, Jboss 4.0.x, Seam 1.2p1 with
> client
> >>>> side state saving.
> >>>>
> >>>> One of the first errors in the log is:
> >>>>
> >>>> 2007-06-29 15:35:17,593 ERROR [STDERR] Jun 29, 2007 3:35:17 PM
> >>>> org.apache.myfaces.trinidadinternal.application.StateManagerImpl
> >>>> restoreView SEVERE: Could not find saved view state for token 7cad43c0
> >>>>
> >>>> Which is why I'm assuming it is the HTTPSession timeout.
> >>>>
> >>>> Is there anything I can do so that the "refresh" will re-run the
> search
> >>>> and
> >>>> not show the Find screen?
> >>>>
> >>>> Thanks,
> >>>> Chris....
> >>>>
> >>>>
> >>>>
> >>
> >> --
> >> -- Emails in "mixed" posting style will be ignored
> >> -- (http://en.wikipedia.org/wiki/Posting_style)
> >>
> >>
> >
>
>

Reply via email to