Hi, I'm trying to implement a pattern that does some automatic cleanup and checking using the WebRequestServicerPipeline. I'm performing some URL checks to detect when a user is switching amongst "applications" in my WAR.
I've used Hivemind to add a filter to the WebRequestServicerPipeline, but I'm having some issues that relate to the lifecycle of requests that I'm hoping someone can shed light on.
From the docs, it appears that the WebRequestServicerPipeline should be
initialized with all the necessary globals around the request, but I am unable to access the ApplicationStateManager from within my filter. Prior to servicing the request, my filter is trying to use an injected ApplicationStateManager to access a state object, but it doesn't appear to be properly initialized. I'm getting the following exception. Can someone confirm that I should be able to access the ApplicationStateManager within this pipeline prior to servicing the request? [java] 08:27:57,156 ERROR [STDERR] java.lang.NullPointerException: Property 'webRequest' of <OuterProxy for tapestry.globals.RequestGlobals( org.apache.tapestry.services.RequestGlobals)> is null. [java] 08:27:57,156 ERROR [STDERR] at $WebRequest_1112241239a._targetServiceProperty($WebRequest_1112241239a.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequest_1112241239a.getSession($WebRequest_1112241239a.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequest_11122412326.getSession($WebRequest_11122412326.java) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.SessionScopeManager.getSession( SessionScopeManager.java:48) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.SessionScopeManager.get( SessionScopeManager.java:64) [java] 08:27:57,156 ERROR [STDERR] at $StateObjectPersistenceManager_111224124ae.get($StateObjectPersistenceManager_111224124ae.java) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.StateObjectManagerImpl.get( StateObjectManagerImpl.java:50) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.ApplicationStateManagerImpl.get( ApplicationStateManagerImpl.java:60) [java] 08:27:57,156 ERROR [STDERR] at $ApplicationStateManager_11122412342.get($ApplicationStateManager_11122412342.java) [java] 08:27:57,156 ERROR [STDERR] at $ApplicationStateManager_11122412343.get($ApplicationStateManager_11122412343.java) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.proxyadmin.lifecycle.ProxyAdminLifeCycleHandler.startApplication (ProxyAdminLifeCycleHandler.java:32) [java] 08:27:57,156 ERROR [STDERR] at $ApplicationLifeCycleHandler_1112241238b.startApplication($ApplicationLifeCycleHandler_1112241238b.java) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter.startApplication (ApplicationLifeCycleFilter.java:221) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter.interceptNonNestedRequest (ApplicationLifeCycleFilter.java:195) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter.service( ApplicationLifeCycleFilter.java:105) [java] 08:27:57,156 ERROR [STDERR] at $WebRequestServicerFilter_11122412380.service($WebRequestServicerFilter_11122412380.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequestServicer_11122412384.service($WebRequestServicer_11122412384.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequestServicer_1112241237c.service($WebRequestServicer_1112241237c.java) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service( WebRequestServicerPipelineBridge.java:56) I've configured the pipeline as follows: <contribution configuration-id=" tapestry.request.WebRequestServicerPipeline"> <filter name="ApplicationLifeCycleFilter" object="service:ApplicationLifeCycleFilter"/> </contribution> <service-point id="ApplicationLifeCycleFilter" interface=" org.apache.tapestry.services.WebRequestServicerFilter"> <invoke-factory> <construct class=" com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter"> <set-configuration property="contributions" configuration-id="ApplicationLifeCycleHandlers"/> </construct> </invoke-factory> </service-point> whereby I have a bunch of contributions used to find the proper application life cycle handlers. Regards, Tim