i commited a fix into the trunk 2008/5/8 lebenski <[EMAIL PROTECTED]>:
> > 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] > > -- with regards Sven Homburg http://tapestry5-components.googlecode.com