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]