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

Reply via email to