Hi,

   I don't know if i'm understanding well, but my English is very bad...
sorry.

   I used, like you, the ServletContextListener. I only used two methods,
contextInitialized and contextDestroyed, to monitor when Tomcat start or
stop, buy there are two more to monitor the start and stop sessions. In this
URL you can see a example.


http://www.stardeveloper.com/articles/display.html?article=2001111901&page=1

   I hope help you.





2006/5/28, Asaf Lahav <[EMAIL PROTECTED]>:

Wouldn't it be better to develop a ServletContextListener servlet?



Anyhow,

I did give it a try and I attempt to develop a ServletContextListener
servlet.

This is the code I'm using (took it from tomcat servlet samples):

/**

*

*/

package starters;



import javax.servlet.ServletContext;

import javax.servlet.ServletContextAttributeEvent;

import javax.servlet.ServletContextAttributeListener;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;



public class ContextServletsTest implements
ServletContextAttributeListener,

            ServletContextListener {



       /**

     * The servlet context with which we are associated.

     */

    private ServletContext context = null;





    // --------------------------------------------------------- Public
Methods





    /**

     * Record the fact that a servlet context attribute was added.

     *

     * @param event The servlet context attribute event

     */

    public void attributeAdded(ServletContextAttributeEvent event) {



      log("attributeAdded('" + event.getName() + "', '" +

          event.getValue() + "')");



    }





    /**

     * Record the fact that a servlet context attribute was removed.

     *

     * @param event The servlet context attribute event

     */

    public void attributeRemoved(ServletContextAttributeEvent event) {



      log("attributeRemoved('" + event.getName() + "', '" +

          event.getValue() + "')");



    }





    /**

     * Record the fact that a servlet context attribute was replaced.

     *

     * @param event The servlet context attribute event

     */

    public void attributeReplaced(ServletContextAttributeEvent event) {



      log("attributeReplaced('" + event.getName() + "', '" +

          event.getValue() + "')");



    }





    /**

     * Record the fact that this web application has been destroyed.

     *

     * @param event The servlet context event

     */

    public void contextDestroyed(ServletContextEvent event) {



      log("contextDestroyed()");

      this.context = null;



    }





    /**

     * Record the fact that this web application has been initialized.

     *

     * @param event The servlet context event

     */

    public void contextInitialized(ServletContextEvent event) {



      this.context = event.getServletContext();

      log("contextInitialized()");



    }





    // -------------------------------------------------------- Private
Methods





    /**

     * Log a message to the servlet context application log.

     *

     * @param message Message to be logged

     */

    private void log(String message) {



      if (context != null)

          context.log("ContextListener: " + message);

      else

          System.out.println("ContextListener: " + message);



    }





    /**

     * Log a message and associated exception to the servlet context

     * application log.

     *

     * @param message Message to be logged

     * @param throwable Exception to be logged

     */

    private void log(String message, Throwable throwable) {



            if (context != null)

                context.log("ContextListener: " + message, throwable);

            else {

                System.out.println("ContextListener: " + message);

                throwable.printStackTrace(System.out);

            }



    }



}



I also added a Listener entry in the application web.xml:

            <listener>


<listener-class>starters.ContextServletsTest</listener-class>

      </listener>



For some reason its not working and I can't figure it out.

Apperently I did every thing as required. Yet it doesn't function at all.

Thanks in advance,



Asaf Lahav



VP R&D, Prima Grid LTD.



Cellular:  972-54-4717955



Phone:   972-3-6540255



Fax:       972-3-6540254







-----Original Message-----
From: Parsons Technical Services [mailto:[EMAIL PROTECTED]
Sent: Monday, May 15, 2006 11:45 PM
To: Tomcat Users List
Subject: Re: Run class in the start up of Tomcat



Are you wanting to start a servlet or load a class?



You can load a servlet at the application level.

load-on-startup in the servlet class element in the web.xml of the app.



  <servlet>

     <servlet-name>Scored</servlet-name>

     <servlet-class>srm.Scored</servlet-class>

     <load-on-startup>1</load-on-startup>

    </servlet>



The number indicates the order that the servlet is loaded.



As for a class you will need to look into the class loader for Tomcat.



http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html



Doug





----- Original Message -----

From: "Juanjo Cuadrado" <[EMAIL PROTECTED]>

To: <users@tomcat.apache.org>

Sent: Monday, May 15, 2006 5:08 PM

Subject: Run class in the start up of Tomcat





Hi,



   I'm trying to run a class in startup of Tomcat. I think that this was

possible in others versions of Tomcat (I just started with Tomcat 5). I

think that it was a property in someone element of server.xml that allowed

this.



    Anyone can help me? I hope that yes ;) tx







---------------------------------------------------------------------

To unsubscribe, e-mail: [EMAIL PROTECTED]

For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to