Mark Benussi wrote:
>Thanks Darryl
>
>I have followed this guide but don't know how to add the modify the
>server.xml I attached to reflect this. Also are you saying I should put the
>class that implements the listener in the server/classes?
>
>I am fine with this but wasn't sure if it would all get loaded together as
>the class is a Singleton that the rest of my code talks to and need to be
>sure it will have access to the same class instance in the JVM.
>
>
>
From the example you quoted right at the top there is:
[...SNIP...]
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>
<GlobalNamingResources>
[...SNIP...]
So you just add your:
<Listener className="my.domain.class.LifecycleListener"/>
To confirm location grep "jar -tvf tomcat-foobar.jar" from
$CATALINA_HOME/servers/lib for mbeans/ServerLifecycleListener.class.
As for ensuring the SAME instance of the Singleton is found, maybe you
must put it into $CATALINA_HOME/common/lib not server/lib! Please read
up on the differencies for clarification.
It is my understanding that only the Tomcat Application Server itself
loads classes from $CATALINA_HOME/servers/* and that all librarys in
$CATALINA_HOME/common/* are available to both the AS and the WEBAPP
contexts. Just make sure you dont override the class by also installing
it into the WEB-INF/* area.
If this does not work maybe JNDI is the only way, that is bind the
instance to a JNDI path at the first lifecycle event then all the
webapps can lookup and use it (if simplistic class loading does not work).
I have not used this method before as I found other ways to do what I
needed, I wanted to deploy the listener within my webapp.
>-----Original Message-----
>From: Darryl L. Miles [mailto:darryl@netbauds.net]
>Sent: 27 July 2005 12:10
>To: Tomcat Users List
>Subject: Re: Placing a LifecycleListener in my server.xml
>
>
>Sorry did not read properly..
>
>Have you tried:
>
>for JARs: $CATALINA_HOME/server/lib or $CATALINA_HOME/common/lib
>for .class: $CATALINA_HOME/server/classes or $CATALINA_HOME/common/classes
>
>
>From: http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/context.html
>
>*Lifecycle Listeners*
>
> If you have implemented a Java object that needs to know when this
> *Context* is started or stopped, you can declare it by nesting a
> *Listener* element inside this element. The class name you specify
> must implement the |org.apache.catalina.LifecycleListener|
> interface, and it will be notified about the occurrence of the
> coresponding lifecycle events. Configuration of such a listener
> looks like this:
>
><Context path="/examples" ...>
> ...
> <Listener className="com.mycompany.mypackage.MyListener" ... >
> ...
></Context>
>
> Note that a Listener can have any number of additional properties
> that may be configured from this element. Attribute names are
> matched to corresponding JavaBean property names using the standard
> property method naming patterns.
>
>
>
--
Darryl L. Miles
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
|