Apparently this message didnt get sent properly last time: Oh I just noticed that you said you found the problem.... is it because the jsessionid is getting passed on the URL or something else?
lebenski wrote: > > Thanks very much Sven. I appreciate your help on this matter, let me know > if I can be of any assistance, I'll be monitoring this thread all day. > > Ben. > > > > Sven Homburg wrote: >> >> after a debug session, a find the reason for this behavior. >> i try to find out a soloution for that >> >> 2008/5/8 lebenski <[EMAIL PROTECTED]>: >> >>> >>> Yeah that sounds exactly like the problem i'm getting. >>> >>> FYI here is my initial request (onchange of username field) after >>> deleting >>> cookies: >>> >>> URL= >>> http://localhost:8080/home.homepage.registerwidget.registerbasicwidget.registerbasic_username:change;jsessionid=1d4snmum7f5cy/tesusername >>> >>> Second request: >>> >>> URL= >>> http://localhost:8080/home.homepage.registerwidget.registerbasicwidget.registerbasic_username:change/tesusername >>> >>> It appears the jsessionid only gets sent on the URL on the first request >>> (which breaks). However it gets sent in the cookie header both times. >>> The >>> last bit after the slash is the value of the user name field. >>> >>> >>> Sven Homburg wrote: >>> > >>> > i tested it here in my demo app. >>> > if i delete the session cookie the the onevent result is empty >>> > even though i refresh the page !?!? >>> > >>> > 2008/5/8 Sven Homburg <[EMAIL PROTECTED]>: >>> > >>> >> is there the same behavior if the restart the browser? >>> >> >>> >> >>> >> 2008/5/8 lebenski <[EMAIL PROTECTED]>: >>> >> >>> >> > >>> >> > for real testing i think its better to delete the cookie and >>> refresh >>> >> the >>> >> > page >>> >> > before you initiate the ajax request cycle. >>> >> > >>> >> > This is exactly what i'm doing. I've also tried this from a fresh, >>> >> > non-dev >>> >> > machine. I hit my server without doing any shenanigans with >>> deleting >>> >> > cookies and I get the same issue %-|. >>> >> > >>> >> > >>> >> > Sven Homburg wrote: >>> >> > > >>> >> > > thats not correct, >>> >> > > the session id ommited by the servlet by every >>> >> > > request to the browser >>> >> > > >>> >> > > so if the user starts the browser >>> >> > > and request the www.blabla.com/servletcontext/login or whatever >>> >> > > the servlet container response the session id >>> >> > > >>> >> > > if you delete the cookie or remove the session id from url >>> >> > > the server cant handle the ajax request (not sure for that but >>> sounds >>> >> > > logical for me) >>> >> > > >>> >> > > for real testing i think its better to delete the cookie and >>> refresh >>> >> > the >>> >> > > page >>> >> > > before you initiate the ajax request cycle. >>> >> > > >>> >> > > 2008/5/8 lebenski <[EMAIL PROTECTED]>: >>> >> > > >>> >> > >> >>> >> > >> I'm replicating the state in which a new user will hit the site, >>> >> they >>> >> > >> won't >>> >> > >> have any of the cookies set by Tapestry. >>> >> > >> >>> >> > >> >>> >> > >> Sven Homburg wrote: >>> >> > >> > >>> >> > >> > why do you delete the cookies ? >>> >> > >> > >>> >> > >> > 2008/5/8 lebenski <[EMAIL PROTECTED]>: >>> >> > >> > >>> >> > >> >> >>> >> > >> >> Hi guys, >>> >> > >> >> >>> >> > >> >> Ok i've got an urgent problem. I'm using tapestry to develop >>> a >>> >> > web >>> >> > >> app, >>> >> > >> >> which I have to present tomorrow to some very important >>> people! >>> >> > >> >> >>> >> > >> >> I've got a very frustrating problem. I will try to explain >>> it >>> as >>> >> > >> clearly >>> >> > >> >> as >>> >> > >> >> possible. >>> >> > >> >> >>> >> > >> >> I'm using the t5components/OnEvent Mixin to call back to >>> Tapestry >>> >> > >> >> 'onChange' >>> >> > >> >> of a textfield. >>> >> > >> >> >>> >> > >> >> TML: >>> >> > >> >> >>> >> > >> >> <t:form t:id="registerBasicForm" t:class="gamesysForm" >>> >> > >> >> zone="registerBasicZone"> >>> >> > >> >> .... >>> >> > >> >> <t:label >>> for="registerbasic_userName"> >>> >> > >> >> User Name: >>> >> > >> >> </t:label> >>> >> > >> >> <t:textfield >>> >> > t:id="registerbasic_userName" >>> >> > >> >> t:value="userName" >>> >> > >> >> event="change" onfocus="showFieldHint('4-16 >>> >> > >> >> characters');showFieldError('registerbasic_userName');"/> >>> >> > >> >> >>> >> > >> >> .... >>> >> > >> >> </t:form> >>> >> > >> >> >>> >> > >> >> Page Class: >>> >> > >> >> >>> >> > >> >> @Component(id = "registerbasic_userName", parameters = { >>> >> > >> "event=change", >>> >> > >> >> >>> >> > >> >> "onCompleteCallback=checkForServerValidationErrors" >>> >> > >> >> }) >>> >> > >> >> @Mixins("t5components/OnEvent") >>> >> > >> >> private TextField userNameField; >>> >> > >> >> >>> >> > >> >> ... >>> >> > >> >> >>> >> > >> >> @OnEvent(component = "registerbasic_userName", value = >>> >> > >> "change") >>> >> > >> >> public JSONObject onChangeFromUserName(String value) { >>> >> > >> >> System.out.println("onChangeFromUserName"); >>> >> > >> >> JSONObject json = new JSONObject(); >>> >> > >> >> Boolean userNameExists = false; >>> >> > >> >> >>> >> > >> >> Pattern p = >>> >> > >> >> Pattern.compile(messages.get("alphanumeric-regex")); >>> >> > >> >> Matcher m = p.matcher(value); >>> >> > >> >> boolean validUserName = m.find(); >>> >> > >> >> >>> >> > >> >> if (validUserName) { >>> >> > >> >> try { >>> >> > >> >> userNameExists = >>> >> > >> >> hydraService.userNameExists(value); >>> >> > >> >> } catch (ServiceFaultException x) { >>> >> > >> >> logger.error("----fault : " + >>> >> > >> >> x.getFault().getMessage()); >>> >> > >> >> } catch (ServiceProblemException x) { >>> >> > >> >> logger.error("----problem:" + >>> x); >>> >> > >> >> } >>> >> > >> >> >>> >> > >> >> if (userNameExists) { >>> >> > >> >> json.put("error", "true"); >>> >> > >> >> json >>> >> > >> >> >>> .append("message", >>> >> > >> >> "Username " + value >>> >> > >> >> >>> + >>> >> " >>> >> > is >>> >> > >> >> taken"); >>> >> > >> >> } else { >>> >> > >> >> json.put("error", "false"); >>> >> > >> >> json.append("message", ""); >>> >> > >> >> } >>> >> > >> >> >>> >> > >> >> } else { >>> >> > >> >> json.put("error", "true"); >>> >> > >> >> json.append("message", "Field contains >>> >> > invalid >>> >> > >> >> characters"); >>> >> > >> >> } >>> >> > >> >> >>> >> > >> >> json.append("submitid", >>> "submitRegisterBasic"); >>> >> > >> >> json.append("field", >>> "registerbasic_userName"); >>> >> > >> >> System.out.println(json.get("error") + " " + >>> >> > >> >> json.get("field") + " " >>> >> > >> >> + json.get("message")); >>> >> > >> >> >>> >> > >> >> return json; >>> >> > >> >> } >>> >> > >> >> >>> >> > >> >> Javascript: >>> >> > >> >> >>> >> > >> >> function checkForServerValidationErrors(response){ >>> >> > >> >> >>> >> > >> >> var json = response.evalJSON(); >>> >> > >> >> var elementId = json.field.toString(); >>> >> > >> >> >>> >> > >> >> //This MUST be done first >>> >> > >> >> performTypeValidation(elementId); >>> >> > >> >> >>> >> > >> >> if (json!=null && json.error == 'true' && >>> >> > >> >> formErrors[elementId]==null) >>> >> > >> >> { >>> >> > >> >> >>> >> > addFormValidationError(elementId,json.message); >>> >> > >> >> } >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> processValidationErrors(elementId,json.submitid.toString()); >>> >> > >> >> } >>> >> > >> >> >>> >> > >> >> So, what happens is, when the user types a value into >>> 'userName', >>> >> > and >>> >> > >> >> exits >>> >> > >> >> the field (onChange seems to act like onBlur), it calls back >>> to >>> >> > >> Tapestry >>> >> > >> >> which executes the onChangeFromUserName(String value) method >>> to >>> >> > check >>> >> > >> if >>> >> > >> >> the >>> >> > >> >> username exists in the database. This then calls back to the >>> >> > >> javascript >>> >> > >> >> function (defined in the Component annotation) with a JSON >>> >> object. >>> >> > >> The >>> >> > >> >> javascript is used for client side validation/presentational >>> >> > stuff. >>> >> > >> >> >>> >> > >> >> This all works fine under normal conditions. HOWEVER, when I >>> >> > clear my >>> >> > >> >> cookies and do the same action (type a value into 'username' >>> and >>> >> > tab >>> >> > >> >> out), >>> >> > >> >> i >>> >> > >> >> get a javascript error 'json.field has no properties'. The >>> >> server >>> >> > >> side >>> >> > >> >> method (onChangeFromUserName) isn't getting called (I can >>> tell >>> >> > because >>> >> > >> it >>> >> > >> >> doesnt hit System.out.println("onChangeFromUserName");), BUT >>> it >>> >> is >>> >> > >> >> calling >>> >> > >> >> back to the javascript function. Rightly so, the javascript >>> is >>> >> > >> >> complaining >>> >> > >> >> because the JSON object hasn't been passed in. >>> >> > >> >> >>> >> > >> >> 2 cookies are getting set, JSESSIONID and UTRACK, and they do >>> get >>> >> > sent >>> >> > >> >> both >>> >> > >> >> on the initial request (right after i've cleared my cookies) >>> and >>> >> > the >>> >> > >> >> request >>> >> > >> >> after. But for some reason, i'm not hitting the server >>> method >>> on >>> >> > the >>> >> > >> >> initial request. >>> >> > >> >> >>> >> > >> >> I have used tamper data to analyse both requests and they >>> appear >>> >> > to be >>> >> > >> >> identical. Both cookies are getting sent, all the headers >>> are >>> >> > >> identical. >>> >> > >> >> >>> >> > >> >> I am at a real loss and starting to panic about this. I'm >>> >> > starting to >>> >> > >> >> think >>> >> > >> >> that Tapestry needs a request to properly set up the session, >>> >> > before >>> >> > >> you >>> >> > >> >> can >>> >> > >> >> actually call back to it, but this is only a hunch. >>> >> > >> >> >>> >> > >> >> I really need to get this sorted, if you have any ideas then >>> >> > please >>> >> > >> help! >>> >> > >> >> -- >>> >> > >> >> View this message in context: >>> >> > >> >> >>> >> > >> >>> >> > >>> >> >>> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17123771.html >>> >> > >> >> Sent from the Tapestry - User mailing list archive at >>> Nabble.com. >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >>> --------------------------------------------------------------------- >>> >> > >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> > >> >> For additional commands, e-mail: >>> [EMAIL PROTECTED] >>> >> > >> >> >>> >> > >> >> >>> >> > >> > >>> >> > >> > >>> >> > >> > -- >>> >> > >> > with regards >>> >> > >> > Sven Homburg >>> >> > >> > http://tapestry5-components.googlecode.com >>> >> > >> > >>> >> > >> > >>> >> > >> > ----- >>> >> > >> > best regards >>> >> > >> > Sven >>> >> > >> > >>> >> > >> >>> >> > >> -- >>> >> > >> View this message in context: >>> >> > >> >>> >> > >>> >> >>> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17123963.html >>> >> > >> Sent from the Tapestry - User mailing list archive at >>> Nabble.com. >>> >> > >> >>> >> > >> >>> >> > >> >>> >> --------------------------------------------------------------------- >>> >> > >> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> > >> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> > >> >>> >> > >> >>> >> > > >>> >> > > >>> >> > > -- >>> >> > > with regards >>> >> > > Sven Homburg >>> >> > > http://tapestry5-components.googlecode.com >>> >> > > >>> >> > > >>> >> > > ----- >>> >> > > best regards >>> >> > > Sven >>> >> > > >>> >> > >>> >> > -- >>> >> > View this message in context: >>> >> > >>> >> >>> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124134.html >>> >> > Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >> > >>> >> > >>> >> > >>> --------------------------------------------------------------------- >>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> > For additional commands, e-mail: [EMAIL PROTECTED] >>> >> > >>> >> > >>> >> >>> >> >>> >> -- >>> >> with regards >>> >> Sven Homburg >>> >> http://tapestry5-components.googlecode.com >>> >> >>> > >>> > >>> > >>> > -- >>> > with regards >>> > Sven Homburg >>> > http://tapestry5-components.googlecode.com >>> > >>> > >>> > ----- >>> > best regards >>> > Sven >>> > >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124356.html >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> >> >> -- >> with regards >> Sven Homburg >> http://tapestry5-components.googlecode.com >> >> >> ----- >> best regards >> Sven >> > > -- View this message in context: http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124838.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]