The registry is stored in the servlet context.
You can retreived it by :
String REGISTRY_KEY_PREFIX =
"org.apache.tapestry.Registry:";
ServletContext context = getServletContext();
Registry registry = (Registry)
context.getAttribute(REGISTRY_KEY_PREFIX +
"testPojoASO");
IInjectEnhancementWorker stateWorker =
(IInjectEnhancementWorker)
registry.getService(IInjectEnhancementWorker.class);
(In your case you need to replace testPojoASO by the
servlet name in web.xml.)
In your orginal post,
you have a custom ApplicationServlet.
I have try the following approach with the code in
your orginal post.
Step 1) Use the framework ApplicationServlet.
Step 2) Retrieve the registry as described above.
Then I have no problem retrieving the stateWorker in
the Home page using the
above method. (As long as you have access to the
context servlet, you can get stateWorker.)
Joseph : I am sending your a war file (binary and
source) of the above example off the list.
Shing
--- Joseph Hannon <[EMAIL PROTECTED]> wrote:
> Shing,
>
> Cool. I did replace <set-object with the
> <set-service and got the same
> exception. If you will notice in my original post,
> this was commented
> out, I uncommented it and commented the line with
> <set-object .
>
> Would you mind showing some code where you are
> getting your asoService
> class from a pojo? I would like to see how you are
> making the call that
> gets the service. I suspect getting my registry
> from my servlet is not
> the way to go.
>
> Thanks,
> Joseph
>
> Shing Hing Man wrote:
> >> How are you calling getAppStateManager(), from
> what
> >> class? How are you
> >> getting access to the registry from a POJO?
> >
> >
> > In my how-to, appStateManager is injected to
> > the tapestry service asoSerivce by hivemind.
> >
> >
> > The following piece of code is meant to be in the
> > .java
> > class of my asoService.
> >
> > HelloMessage message = (HelloMessage)
> > getAppStateManager().get("message");
> >
> >
> > Also, in the .java of my asoService, there is
> > getter/setter method for the property
> > appStateManager.
> >
> >
> > I have noticed that in your
> > service-point id="InjectStateWorker", you have
> > <set-object property="applicationStateManager"
> > value="infrastructure:applicationStateManager"/>
> >
> > try replacing it by
> > <set-service property="applicationStateManager"
> >
> >
>
service-id="tapestry.state.ApplicationStateManager"/>
> >
> > Shing
> >
> >
> >
> >
> > --- Joseph Hannon <[EMAIL PROTECTED]> wrote:
> >
> >> Shing,
> >>
> >> I did change the 'Visit' id to something else,
> >> 'message', as a test and
> >> still get the exception of webRequest being null.
> >>
> >> From your website: HelloMessage message =
> >> (HelloMessage)
> >> getAppStateManager().get("message");
> >> How are you calling getAppStateManager(), from
> what
> >> class? How are you
> >> getting access to the registry from a POJO?
> >>
> >> Thanks,
> >> Joseph
> >>
> >> Shing Hing Man wrote:
> >>> Sorry ! Here is the correct link.
> >>>
> >>> http://lombok.demon.co.uk/tapestry4Demo/app
> >>>
> >>>
> >>> Shing
> >>> --- Shing Hing Man <[EMAIL PROTECTED]> wrote:
> >>>
> >>>> I have noticed that in the retrieveVisit method
> >> of
> >>>> InjectStateWorker.java :
> >>>> visit = (Visit)
> >>>> _applicationStateManager.get("visit")
> >>>> ;
> >>>>
> >>>>
> >>>> But in the hivemodule.xml, the state object
> name
> >> is
> >>>> 'Visit' with a captial V.
> >>>>
> >>>> You might like to rename 'visit' to something
> >> else.
> >>>> I do not know whether it would conflict with
> the
> >>>> default visit object (the one that could be
> >>>> specified
> >>>> in
> >>>> .application.)
> >>>>
> >>>>
> >>>> I have written up an example on injecting an
> aso
> >>>> into
> >>>> a service and put it on
> >>>> http://lombok.demon.co.uk/tapestry4Demo
> >>>>
> >>>> If you like, you can take a look and see if it
> >>>> helps.
> >>>>
> >>>>
> >>>> Shing
> >>>>
> >>>>
> >>>> --- Finster Hannon <[EMAIL PROTECTED]>
> wrote:
> >>>>
> >>>>> I would like to get access to my ASO 'Visit'
> >> from
> >>>> a
> >>>>> servlet filter let's
> >>>>> say. I have used a piece I saw Howard post
> >> where
> >>>> I
> >>>>> am subclassing the
> >>>>> ApplicationServlet which will provide access
> to
> >>>> the
> >>>>> HiveMind (HM)
> >>>>> registry. I would think then calling from
> >>>> anywhere
> >>>>> in the app to the
> >>>>> servlet would give me the HM registry. Once I
> >>>> have
> >>>>> the registry, I
> >>>>> would think I can access it's services. I saw
> >> an
> >>>>> example of injecting
> >>>>> an ASO into a POJO using a service and
> >> implemented
> >>>>> that below. It is
> >>>>> not really the ASO getting injected, rather it
> >> is
> >>>>> the
> >>>>> ApplicationStateManager (ASM) getting
> injected.
> >> I
> >>>>> am getting the
> >>>>> service, getting the ASM, but when attempting
> to
> >>>> get
> >>>>> 'Visit' from the
> >>>>> ASM, an exception is thrown visible in the
> >> logging
> >>>>> below. I then moved
> >>>>> my call to a page class to see if that would
> >>>> change
> >>>>> things and it did
> >>>>> not. Debugging my servlet shows the registry
> >>>>> obtained has many services
> >>>>> including mine.
> >>>>>
> >>>>> I have seen many references to 'HiveUtils
> >>>>> ObjectBuilder' and would like
> >>>>> to get this working before attempting use of
> >> that.
> >>>>> Also saw in this
> >>>>> list: 'how to inject visit object into pojo',
> >>>> 'how
> >>>>> to inject aso in
> >>>>> service', 'injecting an aso into a hivemind
> >>>>> service', and 'injecting
> >>>>> an aso into a service' which all relate to
> this
> >>>>> post.
> >>>>>
> >>>>> Can I get the HM registry from my servlet and
> is
> >>>> it
> >>>>> valid? Is there
> >>>>> another way to get the registry? Suggestions
> on
> >>>>> getting the ASO 'Visit'
> >>>>> from a POJO? Is my code invalid?
> >>>>>
> >>>>> Thanks,
> >>>>> Joseph
> >>>>>
> >>>>> The call:
> >>>>> IInjectEnhancementWorker stateWorker =
> >>>>> (IInjectEnhancementWorker)
>
=== message truncated ===
Home page :
http://uk.geocities.com/matmsh/index.html
___________________________________________________________
All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease
of use." - PC Magazine
http://uk.docs.yahoo.com/nowyoucan.html
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]