• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Handling Session timeout with ajax
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Handling Session timeout with ajax


  • Subject: Re: Handling Session timeout with ajax
  • From: David Avendasora <email@hidden>
  • Date: Wed, 28 Jan 2009 12:57:56 -0500

But, but.. Where's the Purple Moose? I still don't see it...

What? Huh?

Oh.


On Jan 28, 2009, at 12:38 PM, Chuck Hill wrote:


On Jan 27, 2009, at 10:03 PM, Chuck Hill wrote:
On Jan 27, 2009, at 8:38 PM, Paul Hoadley wrote:
On 28/01/2009, at 1:40 PM, Chuck Hill wrote:

If not, follow Anjo's suggestion of overriding dispatchRequest() and logging out the response before returning it.

Jan 28 13:23:08 AM[50121] WARN NSLog - <er.ajax.AjaxRequestHandler>: Exception occurred while handling request:
java.lang.NullPointerException
Jan 28 13:23:08 AM[50121] INFO NSLog - Application.handleException: Handling an Exception:
[2009-1-28 13:23:8 CST] <WorkerThread1> java.lang.NullPointerException


...

Jan 28 13:23:08 AM[50121] INFO NSLog - AMErrorPage.setPageType: pageType = exception
Application.dispatchRequest:
<script type="text/javascript">document.location.href='/cgi-bin/ WebObjects/AM.woa/wo/4.0';</script>
Application.dispatchRequest:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
...


So there's the request, coming from a small Javascript fragment. I don't know what's generating _that_, though.

That looks like what ERXRedirect can return:

if (ERXAjaxApplication.isAjaxRequest(context.request())) {
boolean hasUpdateContainer = context .request ().stringFormValueForKey (ERXAjaxApplication.KEY_UPDATE_CONTAINER_ID) != null;
if (hasUpdateContainer) {
response.appendContentString("<script type=\"text/javascript \">");
}
else {
response.setHeader("text/javascript", "Content-Type");
}
response.appendContentString("document.location.href='" + url + "';");
if (hasUpdateContainer) {
response.appendContentString("</script>");
}


How are you using that ERXRedirect again?

I'm not using ERXRedirect directly, but in Application.handleException() I have this:


@Override
public WOResponse handleException(Exception anException, WOContext aContext) {
AMErrorPage errorPage = (AMErrorPage) pageWithName(AMErrorPage.class
.getName(), aContext);
errorPage.setPageType(AMErrorPage.EXCEPTION);
if (AjaxUtils.isAjaxRequest(aContext.request())) {
AjaxUtils.redirectTo(errorPage);
return errorPage.context().response();
}
return errorPage.generateResponse();
}


(Just some logging statements removed.)

It looks like WO is not saving errorPage in the page cache when handleException is called. I thought it did, maybe this is a 5.4 change. I am going to stick this on my To Do stack for now.


Score WebObjects: 1, Chuck: 0

The defect is mine.  The correct code is:

if (AjaxUtils.isAjaxRequest(aContext.request())) {
	// Create redirect to return to break out of Ajax
	AjaxUtils.redirectTo(errorPage);
	WOResponse redirect = errorPage.context().response();

// Generate the error page so that it gets into the page cache, don't do this earlier!
errorPage.generateResponse();
return redirect;
}


Or

if (AjaxUtils.isAjaxRequest(aContext.request())) {
	// Create redirect to return to break out of Ajax
	AjaxUtils.redirectTo(errorPage);
	WOResponse redirect = errorPage.context().response();

	// Force errorPage into the page cache, don't do this earlier!
	aContext.session().savePage(errorPage);
	return redirect;
}


Chuck



--
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden



_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Handling Session timeout with ajax (From: Amedeo Mantica <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Paul Hoadley <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)
 >Re: Handling Session timeout with ajax (From: Chuck Hill <email@hidden>)

  • Prev by Date: Re: Bug in client side EOF locking?
  • Next by Date: Re: Superfluous Session Creation
  • Previous by thread: Re: Handling Session timeout with ajax
  • Next by thread: Re: Handling Session timeout with ajax
  • Index(es):
    • Date
    • Thread