7

常に実行する必要がある単純なJavaアプリケーションがあります(サーバーの再起動時に自動的に起動するためにも)。
サービスラッパーについて考えましたが、Windowsバージョンは有料です。
プロジェクトから特定のクラスを自動的に実行するようにTomcatを構成する方法、または同じ結果をもたらす可能性のある他のソリューションはありますか?

4

3 に答える 3

5

私はあなたの必要性は同時にtomcatで始まるアプリケーション(ウェブであろうと非ウェブであろうと)を持っていることだと思います。

さて、リスナーを登録し(アプリケーションの開始イベント、つまりTomcatの開始イベントをリッスンする)、クラスを起動する単純なWebアプリケーションが必要です。

web.xmlでは、次のようにリスナーを宣言するのは非常に簡単です。

<listener>
        <description>application startup and shutdown events</description>
        <display-name>ApplicationListener</display-name>
        <listener-class>com.myapp.server.config.ApplicationListener</listener-class>
</listener>

そして、ApplicationListenerクラスで、ServletContextListenerインターフェースを実装します。次に例を示します。

import java.io.File;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;



/**
 * Class to listen for application startup and shutdown
 * 
 * @author HBR
 * 
 */
public class ApplicationListener implements ServletContextListener {
    private static Logger logger = Logger.getLogger(ApplicationListener.class);

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        logger.info("class : context destroyed");

    }

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        ServletContext context = servletContextEvent.getServletContext();
        ///// HERE You launch your class
        logger.info("myapp : context Initialized");
    }



}
于 2013-02-21T10:39:36.527 に答える
0

簡単なグーグルはたくさんのオプションを示しています:

最後に、Tomcatで(Webアプリの一部として)必要な場合は、QuartzSchedulerのようなものです

于 2013-02-21T10:05:46.197 に答える
0

見てみましょう:

  1. http://wrapper.tanukisoftware.com/doc/english/download.jsp
  2. http://commons.apache.org/daemon/jsvc.html

どちらも、Javaアプリケーションをサービスとして実行するのに役立ちます。ただし、アプリケーションをtomcatと組み合わせて実行する場合は、アプリケーションを実行する独自の単純なWebアプリケーションを実装できます。どちらでも使用できます

  1. サーバーの起動時に開始するサーブレット(web.xmlでこれを構成します)
  2. HTTPフィルター
  3. ServletContextListener。
于 2013-02-21T10:08:14.243 に答える