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]

Reply via email to