Ok nevermind, I just found the closeMethod attribute on Resource 
(http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Resource_Definitions)
Thanks,
Xavier

> From: kal...@hotmail.com
> To: users@tomcat.apache.org
> Subject: RE: Destroying resources created with a custom ObjectFactory
> Date: Tue, 29 Jan 2013 11:08:26 +0100
> 
> Hi,
> 
> There seems to be no simple way to destroy jndi resources in tomcat, somebody 
> had a similar problem here 
> (http://fogbugz.atomikos.com/default.asp?community.6.2101.7) and was advised 
> to use tomcat org.apache.catalina.Lifecycle* classes.
> 
> What I had first in mind was to register a NamespaceChangeListener into the 
> context passed to the getObjectInstance() method but, apparently, it does not 
> implement javax.naming.event.EventContext. This is what I wanted to do: 
> http://pastebin.com/W7dCafPS (on pastebin to keep the formating).
> 
> Is there another (simple) way to destroy my jndi resources?
> 
> Thanks,
> 
> Xavier
> 
> > From: kal...@hotmail.com
> > To: users@tomcat.apache.org
> > Subject: RE: Destroying resources created with a custom ObjectFactory
> > Date: Tue, 29 Jan 2013 09:22:36 +0100
> > 
> > Hi,
> > Here is my context.xml
> > <Context>   <Resource name="/cache/CacheManager" 
> > type="net.sf.ehcache.CacheManager" factory="eg.CacheManagerFactory" 
> > configurationFile="${catalina.home}/conf/test-ehcache.xml" /></Context>
> > and this is my ObjectFactory:
> > public class CacheManagerFactory implements ObjectFactory {
> >   public Object getObjectInstance(Object object, Name jndiName, Context 
> > context, Hashtable<?, ?> environment) throws Exception {    String 
> > configurationFile = null;    if (object instanceof Reference) {      
> > Reference reference = (Reference) object;      Enumeration<RefAddr> 
> > refAddrs = reference.getAll();      while (refAddrs.hasMoreElements()) {    
> >     RefAddr refAddr = refAddrs.nextElement();        if 
> > ("configurationFile".equals(refAddr.getType())) {          
> > configurationFile = (String) refAddr.getContent();        }      }    }    
> > CacheManager cacheManager = configurationFile == null ? 
> > CacheManager.create() : CacheManager.create(configurationFile);    // 
> > Register some hook here to call cacheManager.shutdown() on 
> > undeploy/redeploy    return cacheManager;  }}
> > Xavier
> > > Date: Mon, 28 Jan 2013 13:07:15 -0500
> > > From: ch...@christopherschultz.net
> > > To: users@tomcat.apache.org
> > > Subject: Re: FW: Destroying resources created with a custom ObjectFactory
> > > 
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA256
> > > 
> > > Xavier,
> > > 
> > > On 1/28/13 12:20 PM, Xavier Dury wrote:
> > > > I'm using Tomcat 7.0.x and made a custom 
> > > > javax.naming.spi.ObjectFactory to create a Ehcache manager,
> > > > exposing a configured CacheManager to an application through
> > > > (local) JNDI. My question is: how/where can I call the
> > > > CacheManager.shutdown() method when my application is
> > > > (re|un)deployed? I tried adding a NamespaceChangerListener to the
> > > > (Event)Context passed to the ObjectFactory.getObjectInstance()
> > > > method without luck.
> > > 
> > > What does your configuration look like? Are you using <Resource> in
> > > server.xml/context.xml?
> > > 
> > > - -chris
> > > -----BEGIN PGP SIGNATURE-----
> > > Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
> > > Comment: GPGTools - http://gpgtools.org
> > > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> > > 
> > > iEYEAREIAAYFAlEGvlMACgkQ9CaO5/Lv0PAmawCfS5ZP+1RzKbQJzZBtwo6vrPj1
> > > Z6YAn3NHTr/oiR7RUVgzZgMcs5NDNlCq
> > > =iX5J
> > > -----END PGP SIGNATURE-----
> > > 
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> > > For additional commands, e-mail: users-h...@tomcat.apache.org
> > > 
> >                                       
>                                         
                                          

Reply via email to