Not knowing the whole story, I may be off target... However, your code below is suspect to me:
public class MyAction extends ActionSupport implements ApplicationAware { public DBConnector getDatabase() { Map application = getApplication(); Object db = application.get(DATABASE_KEY); .... } At the top of the class you should have a variable declared called: private Map application; You need to implement/override setApplication(...), like so: public void setApplication(Map map) { this.application = map; } When struts enters your class it will set the application variable for you. Then inside your method above, you can dispense with: Map application = getApplication(); As Laurie suggested, make sure you have (1) correct. If I'm missing the point, ignore my email. RDB Martín Mauri wrote: > Hi Laurie, I've checked all the points that you suggested, and I > think that #3 could be a possibility. The thing is that the > database object is not null when I do the > context.setAttribute(DATABASE_KEY, database); But in the Action > that implements the ApplicationAware interface I did the following: > Inside the method that gets invoked I did: Map application = > getApplication(); and it turned out to be that the application > object is null. Am I missing something in the configuration files? > Is it required to do an interceptor to transfer this object from > the Application Listener to my Action class? > > I'll appreciate your help, > > Thank you. Martin > > ----- Original Message ----- From: "Laurie Harper" > <[EMAIL PROTECTED]> To: <user@struts.apache.org> Sent: Thursday, > September 25, 2008 4:45 AM Subject: Re: ApplicationListener issue > > > Martín Mauri wrote: >> Hi all, I'm having an issue while implementing an App Listener >> for my App. Thing is that the ApplicationListener appears to be >> working fine, as from the logs I can see that the >> contextInitialized method is being invoked. >> >> Inside the method I do this call, same way as the Mailreader >> sample app does: >> >> context.setAttribute(DATABASE_KEY, database); The problem comes >> when from my action: >> >> public class MyAction extends ActionSupport implements >> ApplicationAware { >> >> public DBConnector getDatabase() { >> >> Map application = getApplication(); >> >> Object db = application.get(DATABASE_KEY); >> >> .... >> >> } >> >> db is returning null, like if the object got lost somewhere... >> >> here's the fragmen of my web.xml: >> >> <listener> >> >> <listener-class> >> >> myApp.ApplicationListener >> >> </listener-class> >> >> </listener> >> >> Any ideas? > > 1) there's something wrong in your implementation of > ApplicationAware and/or your getApplication() method > > 2) the 'database' variable was null when you called setAttribute() > in your listener > > 3) you have code somewhere which is overwriting the > application-scope property with a null value after the listener > initializes it > > 4) the value of DATABASE_KEY is different in the listener and the > action > > Those are the most obvious places to start. In fact, I can't think > of anything else it could be unless there's something very funky > going on, in which case I doubt it can be diagnosed through a > mailing list... > > L. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] For > additional commands, e-mail: [EMAIL PROTECTED] > > > __________ Información de NOD32, revisión 3469 (20080924) > __________ > > Este mensaje ha sido analizado con NOD32 antivirus system > http://www.nod32.com > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] For > additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]