0

Comment pouvons-nous arrêter ou arrêter une application Spring par elle-même par programme?Comment faire pour arrêter par programme une application Spring par elle-même sur Tomcat

Nous avons actuellement utilisé ConfigurableApplicationContext#close(), et oui, il ferme l'application mais ne ferme pas ou n'arrête pas l'application. A partir du gestionnaire Tomcat, le statut de l'application est toujours actif, ce qui permet au client de se connecter à l'application Web et d'obtenir la ressource frontale. De plus, toutes les servlets semblent toujours fonctionner et peuvent accepter la requête.

Le code ci-dessous montre comment nous fonctionnons actuellement.

@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(); 
    } 
} 

Toute aide est appréciée.

Répondre

0

Si c'est une application de démarrage, vous pouvez utiliser le lien suivant pour arrêter l'application.

Programmatically shut down Spring Boot application

Sinon, vous pouvez appeler le programme shutdown.sh comme ci-dessous pour arrêter le serveur.

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

[Modifier]

Ce fil explique sur l'application de stoping comme gestionnaire tomcat

Start/stop a web application from itself?

+0

Salut Avinash, merci pour votre réponse. Nous n'utilisons pas la botte de ressort pour notre projet actuellement. Le lien que vous avez fourni, cependant, ressemble à l'utilisation de ConfigurableApplicationContext.html # close()? Et nous ne pouvions pas simplement fermer le conteneur (Tomcat) où plusieurs applications sont en cours d'exécution. – Bruce

+0

J'ai édité mon post, s'il vous plaît regarder dans cela. – Avinash