Re: Practical WO Book Demos

From: Fred Shurtleff (fh..omcast.net)
Date: Wed Oct 03 2007 - 12:02:57 EDT

  • Next message: Kieran Kelleher: "WOLips Validation Rules"

    Thanks for your suggestions, but unfortunately, deleting unused projects
    did NOT have any effect. I deleted all projects EXCEPT
    PracticalUtilities, EOJDBCPrototypes, and PWOExampleApp, which are all
    companion apps specified in the PWO Book setup instructions. And
    furthermore, I checked each of these projects and there is no
    Session.java file - so this leaves only 1 Session file in all of Eclipse
    - that being in the Chap4App project.

    Regards the bindings tip, I do NOT see a proper validation performed in
    this case - Main.wod. I actually changed the binding > condition =
    session.isUserAuthenticated; to an erroneous method
    (isUserAuthenticatedX) and changed the title in the HTML file to trigger
    a re-validation, but this validated OK - there was no red X indicating a
    problem.

    And as previously mentioned, I changed the session syntax to
    Session(with a capital S), but this triggered an error re no 'Session'
    class found. So I interpret this to mean that it is finding the session
    class, but for some reason cannot find any of the class methods (ie.
    generates an NSKeyValueCoding exception > UnknownKeyException > lookup
    for unknown key: isUserAuthenticated).

    This is very puzzling in that something about this particular project
    fails, whereas the other demos run/build Ok.

    Fred

    D Tim Cummings wrote:
    > On 29/09/2007, at 7:59 AM, Fred Shurtleff wrote:
    >
    >> Actually each chapter is a separate project which gets imported into
    >> Eclipse, and, of course, contains only 1 Session class. Furthermore I
    >> have not made ANY change to the project files ie. Main or
    >> Session.java, nor the Main.wod files. I simple want to demo their
    >> technique of managing security using a few methods in the session
    >> class to control access to various public/secure areas in the
    >> application.
    >>
    > I find sometimes if I have several projects open in eclipse, WO
    > Component Editor validates against the wrong Session or Application
    > class. Closing the unused projects fixes the problem.
    >
    >> WOComponentEditor does not complain about the bindings - that is
    >> there are no red X's or other symbols indicating a problem. Matter of
    >> fact, I did change the binding to 'Session.isUserAuthenticated'(with
    >> a capital S since WOLips does create a default Session.java file),
    >> and when I ran the app it did complain that there was no 'Session'
    >> class. So I interpret this to mean the session class is referenced
    >> Ok, but none of the session class methods or variables are
    >> accessible. But I can't see why!
    >>
    >
    > You need to make a small change, eg add a space to the html, to the
    > WOComponent and save it to trigger WO Component Editor to revalidate
    > the bindings.
    >
    > Session.isUserAuthenticated will be looking first for a method in your
    > component called Session() or getSession() which won't work
    >
    > session.isUserAuthenticated will be looking first for a method
    > session() which exists in WOComponent which your component extends.
    > WOComponentEditor must do some funky stuff to determine that session()
    > returns an object of type Session rather than type WOSession to
    > complete the validation.
    >
    > Tim
    >
    >> I am totally stumped on this one.
    >>
    >> Jean Pierre Malrieu wrote:
    >>> My guess is that there are several "Session" classes corresponding
    >>> to different chapters in the book, and that somehow, you are using
    >>> the wrong "Session" (from a previous chapter?) which does not have
    >>> the required variables and functions.
    >>> What does WOComponentEditor say about the bindings? Does it complain?
    >>>
    >>> jpm
    >>>
    >>>
    >>>
    >>> Le 28 sept. 07 à 19:56, Fred Shurtleff a écrit :
    >>>
    >>>> Yes - this is the conditional causing the exception. So I changed
    >>>> the condition = true (to get around this problem), and then another
    >>>> 'unknown key' exception is triggered: authenticatedUser is
    >>>> unknown(but is in fact a public method in session.java).
    >>>>
    >>>> So for some reason none of the bindings on Main.wod using session
    >>>> PUBLIC methods/vars are recognizable eg. they trigger exception
    >>>> errors. Can anyone see what might be the problem here?
    >>>>
    >>>> Jean Pierre Malrieu wrote:
    >>>>> Without taking a look at the book, or the code, so just a guess:
    >>>>> Did you try changing the wod to
    >>>>>
    >>>>> Conditional: WOConditional {
    >>>>> condition = session.isUserAuthenticated;
    >>>>> }
    >>>>>
    >>>>> ?
    >>>>>
    >>>>>
    >>>>> jpm
    >>>>>
    >>>>> Le 27 sept. 07 à 21:49, Fred Shurtleff a écrit :
    >>>>>
    >>>>>> Has anyone been able to run the Chapter4App demo from the
    >>>>>> Practical WebObjects Book by Hill & Mallais?
    >>>>>>
    >>>>>> I am unable to get this project to run - it raises an Exception >
    >>>>>> An instance variable or method of the name 'isUserAuthenticated'
    >>>>>> is not found(this is a WOConditional binding on the Main page).
    >>>>>> But 'isUserAuthenticated' is, in fact, a method in Session.java.
    >>>>>> So I am now at a dead end.
    >>>>>>
    >>>>>> Thanks for any ideas or suggestions.
    >>>>>>
    >>>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>
    >>>>
    >>>>
    >>>
    >>>
    >>>
    >>
    >>
    >>
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Oct 03 2007 - 12:05:08 EDT