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]

Reply via email to