2012-12-11 15 views
6

可能性の重複:
tomcat auto start servlet
How do I load a java class (not a servlet) when the tomcat server starts特定のJavaコードをTomcat起動時またはアプリケーション展開時に実行する方法は?

私はTomcatサーバ上で実行されているWebアプリケーションを持っています。 Tomcatが起動したとき、またはこのアプリケーションがデプロイされたときに、アプリケーションで特定のコードを実行したい。どうすれば達成できますか?ありがとう

+5

を、それを構成する必要がある、それはあなたが必要なメソッドを持っています。 –

+0

https://stackoverflow.com/questions/3468150/using-special-auto-start-servlet-to-initialize-on-startup-and-share-application – rogerdpack

答えて

25

あなたはServletContextListnerインターフェイスを実装して、tomcat起動時に実行したいコードを記述する必要があります。

ここで簡単な説明をします。

ServletContextListnerはjavax.servletパッケージ内にあります。

ここでは、その方法を簡単に説明します。

public class MyServletContextListener implements ServletContextListener { 

    @Override 
    public void contextDestroyed(ServletContextEvent arg0) { 
    //Notification that the servlet context is about to be shut down. 
    } 

    @Override 
    public void contextInitialized(ServletContextEvent arg0) { 
    // do all the tasks that you need to perform just after the server starts 

    //Notification that the web application initialization process is starting 
    } 

} 

そして、あなたはあなたが「のServletContextListener」と呼ばれるものを探しているあなたの配備記述子web.xmlに

<listener> 
    <listener-class> 
     mypackage.MyServletContextListener 
    </listener-class> 
</listener> 
+0

クール、お試しください、ありがとう! –

+0

@WebListenerアノテーションも見てください。 – theglauber

+0

私はこれが必要でした。これを行うための「起動時に負荷をかける」方法もあります。私の問題は、両方のメソッドがクラスを2回初期化するということです。何か案が?この問題はhttp://stackoverflow.com/questions/7301088/tomcat-servlet-init-called-twice-upon-startupで見ました。私は何をすべきか理解できない。あまりJavaに慣れていない。 –

関連する問題