You need to get hands on the Dispatcher, it hold the correct (even after reloading ...) reference to the Container. While StrutsPrepareFilter initializes the Dispatcher, it does not expose it the the ServletContext. Actually, if you look into StrutsListener.contextInitialized(), you find what you are looking for. Nevertheless, from a short glance it does not look like they play nice together. AFAICS StrutsPrepareFilter should be modified the following way: in the init method, look if ServletContext contains a Dispatcher for attribute key StrutsStatics.SERVLET_DISPATCHER (if the Listener was configured). If found - use it. If not, create it and expose it under the said attribute key
We should review if configuring Listener and Filter together do make sense, and if yes, if they need better interaction - especially for prepareOperations. - René On Thu, 10 Feb 2011 15:57:06 -0500, Wes Wannemacher <w...@wantii.com> wrote: > Let me put the whole thing a bit differently... > > Does anyone know of a way to get a reference to the Container (or > ConfigurationManager or Configuration) from within - > > ServletContextListener.contextInitialized(ServletContextEvent sce) > > Or, maybe I could refactor some stuff and do it within - > > Servlet.init(ServletConfig config) > > I was hoping for some way to grab a hold of one of the filters > (Prepare or Execute) and yanking the Container out of there, but I > can't seem to find a good way to get at it, outside of Struts but > within a web-app. > > -Wes > > On Thu, Feb 10, 2011 at 3:15 PM, Wes Wannemacher <w...@wantii.com> wrote: >> This isn't a request thread... It is spawned from a >> ServletContextListener. >> >> I am still playing around, I have a ServletContext object right now >> (in the debugger) and I'm seeing if I can get the container from >> there. >> >> I'll check out Ben's solution and see if that helps. >> >> -Wes >> >> On Thu, Feb 10, 2011 at 2:43 PM, John Lindal <lind...@yahoo-inc.com> >> wrote: >>> The simplest solution - if it's possible - is to make the spawned thread >>> a parent of the request thread, and then grab what you need from the >>> parent thread as soon as the child thread starts. >>> >>> Does Struts2 use InheritableThreadLocal? If it did, this would be even >>> easier. >>> >>> John >>> >>> >>> On 2/10/11 11:02 AM, "Wes Wannemacher" <w...@wantii.com> wrote: >>> >>> Because, I'm not in a request-processing thread... >>> >>> In this app, I have a ServletContextListener that launches threads for >>> managing some housekeeping stuff (in this case, looking for specific >>> xml files in jars). I need the configured packages (PackageConfigs) >>> within one of these threads. >>> >>> I did try to get the Dispatcher instance, but it kept coming back >>> null, which led me to dig a bit and then I realized that I am not in a >>> request processing thread (neither is the ServletContextListener that >>> launched the thread). I am going to try to poke around the >>> ServletContext to see if I can get the container that way. >>> >>> -Wes >>> >>> On Thu, Feb 10, 2011 at 1:29 PM, Maurizio Cucchiara >>> <maurizio.cucchi...@gmail.com> wrote: >>>> Wes, >>>> to be frankly I didn't get what you said. >>>> >>>> Dispatcher.getInstance().getContainer() should be yield a container >>>> reference (among the other things it's the better way a know in order >>>> to do that). >>>> >>>> What's the problem with the threadlocal stuff? >>>> >>>> On 10 February 2011 17:43, Wes Wannemacher <w...@wantii.com> wrote: >>>>> Guys, >>>>> >>>>> I am in a non-struts environment (spring class, loaded by a customer >>>>> ServletContextListener), and I am trying to get my hands on the Struts >>>>> 2 configuration. I first tried to do - >>>>> >>>>> Dispatcher.getInstance().getContainer() >>>>> >>>>> But, the dispatcher instance is a threadlocal. I don't really care >>>>> about the dispatcher, I'd just like to get a ref to the container. >>>>> >>>>> Any ideas? >>>>> >>>>> -Wes >>>>> >>>>> -- >>>>> Wes Wannemacher >>>>> >>>>> Head Engineer, WanTii, Inc. >>>>> Need Training? Struts, Spring, Maven, Tomcat... >>>>> Ask me for a quote! >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>>>> For additional commands, e-mail: dev-h...@struts.apache.org >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Maurizio Cucchiara >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: dev-h...@struts.apache.org >>>> >>>> >>> >>> >>> >>> -- >>> Wes Wannemacher >>> >>> Head Engineer, WanTii, Inc. >>> Need Training? Struts, Spring, Maven, Tomcat... >>> Ask me for a quote! >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>> For additional commands, e-mail: dev-h...@struts.apache.org >>> >>> >>> >> >> >> >> -- >> Wes Wannemacher >> >> Head Engineer, WanTii, Inc. >> Need Training? Struts, Spring, Maven, Tomcat... >> Ask me for a quote! >> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org For additional commands, e-mail: dev-h...@struts.apache.org