I have run out of idea. If I come up with something useful, I'll inform you.
Shing --- Joseph Hannon <[EMAIL PROTECTED]> wrote: > Follow up: I can get the Visit object from my > filter's ServletRequest > session.getAttribute("state:apply:Visit"), but I was > attempting to > really use a proper HiveMind facility here. > > Joseph > > Joseph Hannon wrote: > > Shing, > > > > I very much appreciate your time on this by the > way, and your website > > looks very handy. :) > > > > I have gone back to the ApplicationServlet, and > have written code as you > > show below into a static method in a singleton in > my app. When calling > > the method from a page class, Home, I get to my > Visit object just as you > > did, so the method code is valid. When calling > the same method from my > > filter (non page class) I get the webRequest > related exception, see > > below. I did create a non page pojo from Home in > which the pojo calls > > my method and it worked. So non page pojos can do > this but the filter > > can not. It definitely in not trivial to get to > the Registry from a > > filter it would seem. Not sure what to do now for > the filter. May have > > to look at HiveUtils. > > > > Thanks, > > Joseph > > > > Exception: > > java.lang.NullPointerException: Property > 'webRequest' of <OuterProxy for > > > tapestry.globals.RequestGlobals(org.apache.tapestry.services.RequestGlobals)> > > > is null. > > > $WebRequest_10c4ab9cc40._targetServiceProperty($WebRequest_10c4ab9cc40.java) > > > > > > $WebRequest_10c4ab9cc40.getSession($WebRequest_10c4ab9cc40.java) > > > $WebRequest_10c4ab9cc25.getSession($WebRequest_10c4ab9cc25.java) > > > > > $WebRequest_10c4ab9cc24.getSession($WebRequest_10c4ab9cc24.java) > > > > org.apache.tapestry.engine.state.SessionScopeManager.getSession(SessionScopeManager.java:48) > > > > > > org.apache.tapestry.engine.state.SessionScopeManager.get(SessionScopeManager.java:64) > > > > > > $StateObjectPersistenceManager_10c4ab9cc3b.get($StateObjectPersistenceManager_10c4ab9cc3b.java) > > > > > > $StateObjectPersistenceManager_10c4ab9cc3a.get($StateObjectPersistenceManager_10c4ab9cc3a.java) > > > > > > org.apache.tapestry.engine.state.StateObjectManagerImpl.get(StateObjectManagerImpl.java:50) > > > > > > org.apache.tapestry.engine.state.ApplicationStateManagerImpl.get(ApplicationStateManagerImpl.java:60) > > > > > > $ApplicationStateManager_10c4ab9cbfc.get($ApplicationStateManager_10c4ab9cbfc.java) > > > > > > $ApplicationStateManager_10c4ab9cbfd.get($ApplicationStateManager_10c4ab9cbfd.java) > > > > foo.apply.utility.Utility.testASOService(Utility.java:61) > > > > foo.apply.application.SampleFilter.doFilter(SampleFilter.java:176) > > > > > > Shing Hing Man wrote: > >> 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, > >>>>> > === 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]