Hi,
I seem to be stuck between a server stop responding and a session has timed out place :'(
I've circuitously landed with the following code:
private WOResponse answer(WORequest r){
WOContext ctx = new WOContext(r); NSLog.out.appendln("4: " + r.sessionID()); // Application.application().restoreSessionWithID(r.sessionID(), ctx); Application.application().saveSessionForContext(ctx); NSLog.out.appendln("4a: " + ctx.session().sessionID()); return Application.application().pageWithName("ResponsePage", ctx).generateResponse(); }
For some reason the first logging statement returns the correct session id while the second logging statement returns what appears to be a new session ID.
If I use the following code
private WOResponse answer(WORequest r){
WOContext ctx = new WOContext(r); NSLog.out.appendln("4: " + r.sessionID()); Application.application().restoreSessionWithID(r.sessionID(), ctx); // Application.application().saveSessionForContext(ctx); NSLog.out.appendln("4a: " + ctx.session().sessionID()); return Application.application().pageWithName("ResponsePage", ctx).generateResponse(); }
The application hangs before reaching the second logging statement.
Finally this version
private WOResponse answer(WORequest r){
WOContext ctx = new WOContext(r); NSLog.out.appendln("4: " + r.sessionID()); // Application.application().restoreSessionWithID(r.sessionID(), ctx); // Application.application().saveSessionForContext(ctx); NSLog.out.appendln("4a: " + ctx.session().sessionID()); return Application.application().pageWithName("ResponsePage", ctx).generateResponse(); }
has the same result as the first.
Any concept what I might be doing wrong?
Thanks in advance
Jon
On Sep 11, 2007, at 5:04 PM, Chuck Hill wrote:
On Sep 11, 2007, at 5:09 PM, Jonathan Miller wrote:
Hi,
Does anyone have any help with the subject line? Basically, I'm utilizing a customer request handler but I'm unclear how to assign the session to the response.
The current function I'm using to generate the response looks like the following:
private WOResponse answer(WORequest r){ WOContext ctx = new WOContext(r);
String sessionID; // Your job to get this from the request.
Application.application().restoreSessionWithID(sessionID, ctx);
Now you are responsible for checking it back in at the end of RR cycle.
Application.application().sleep();
sleep? Huh?
return Application.application().pageWithName("ResponsePage", ctx).generateResponse(); }
Thanks in advance!!
There are several request handlers in Wonder. It might be very instructive to have a look at them.
Chuck
--
Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
|