0

プログラムでSpringアプリケーションをシャットダウンまたは停止するにはどうすればよいですか?Tomcat上で単独でSpringアプリケーションをプログラムでシャットダウンする方法

現在、ConfigurableApplicationContext#close()を使用しています。はい、アプリケーションを終了しますが、アプリケーションをシャットダウンまたは停止することはありません。

tomcatマネージャから、アプリケーションのステータスはまだ実行されているため、クライアントはWebアプリケーションに接続してフロントエンドリソースを取得できます。さらに、すべてのサーブレットはまだ動作しているようで、要求を受け入れることができます。

以下のコードは、現在の状況を示しています。

@Autowired 
private ConfigurableApplicationContext configurableApplicationContext; 

@Scheduled(cron="0 0/5 * * * ?") 
private void validateLicenseExpired() 
{ 
    try 
    { 
     LicenseUtils.isLicensingPeriodValid(); 
    } catch (LicenseInvalidException lie) { 
     logger.error("\t The licensing is expired", lie); 
     configurableApplicationContext.close(); 
    } 
} 

助けてください。

答えて

0

ブートアプリケーションの場合、次のリンクを使用してアプリケーションを停止できます。

Programmatically shut down Spring Boot application

そうでなければ、プログラムでサーバーを停止するには、以下のようなshutdown.shを呼び出すことができます。

String command = "<path-to-tomcat>shutdown.sh"; // for windows use bat 
Process child = Runtime.getRuntime().exec(command); 

[編集]

このスレッドは、Tomcatの管理者

Start/stop a web application from itself?

+0

こんにちはのAvinashのようなストーピングアプリケーションについてのお返事に感謝を説明します。私たちは現在、私たちのプロジェクトにspring-bootを使用していません。しかし、あなたが提供したリンクは、ConfigurableApplicationContext.html#close()の同じ方法を使用しているように見えますか?そして、我々は複数のアプリケーションがそこで実行されているコンテナ(tomcat)をシャットダウンすることはできませんでした。 – Bruce

+0

私の投稿を編集しました。それを調べてください。 – Avinash

関連する問題