常に実行する必要がある単純なJavaアプリケーションがあります(サーバーの再起動時に自動的に起動するためにも)。
サービスラッパーについて考えましたが、Windowsバージョンは有料です。
プロジェクトから特定のクラスを自動的に実行するようにTomcatを構成する方法、または同じ結果をもたらす可能性のある他のソリューションはありますか?
質問する
6321 次
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
簡単なグーグルはたくさんのオプションを示しています:
- Java Service Wrapper(おそらく言及されているもの)
- さらに別のJavaServiceWrapper(JSWに基づいており、大部分が互換性があるように設計されています)
- Windows Service Wrapper(サービスとしてのすべてのアプリ、Windowsのみ)
- Commons Daemon(Tomcatが使用するもの)
最後に、Tomcatで(Webアプリの一部として)必要な場合は、QuartzSchedulerのようなものです。
于 2013-02-21T10:05:46.197 に答える
0
見てみましょう:
- http://wrapper.tanukisoftware.com/doc/english/download.jsp
- http://commons.apache.org/daemon/jsvc.html
どちらも、Javaアプリケーションをサービスとして実行するのに役立ちます。ただし、アプリケーションをtomcatと組み合わせて実行する場合は、アプリケーションを実行する独自の単純なWebアプリケーションを実装できます。どちらでも使用できます
- サーバーの起動時に開始するサーブレット(web.xmlでこれを構成します)
- HTTPフィルター
- ServletContextListener。
于 2013-02-21T10:08:14.243 に答える