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]

Reply via email to