0

프로그래밍 방식으로 Spring 응용 프로그램을 종료하거나 중지하려면 어떻게해야합니까?Tomcat에서 Spring 응용 프로그램을 프로그래밍 방식으로 종료하는 방법

우리는 현재 ConfigurableApplicationContext#close()을 사용하고 있으며, 응용 프로그램을 종료하지만 응용 프로그램을 종료하거나 중지하지는 않습니다.

tomcat 관리자에서 응용 프로그램 상태가 계속 실행 중이므로 클라이언트는 여전히 웹 응용 프로그램에 연결하여 프런트 엔드 자원을 얻을 수 있습니다. 게다가, 모든 서블릿은 여전히 ​​작동하는 것처럼 보이고 요청을 받아 들일 수 있습니다.

아래 코드는 우리가 현재 어떻게하고 있는지 보여줍니다.

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

는 [편집]

이 스레드는 바람둥이 Manager와 같은을 stoping 응용 프로그램

Start/stop a web application from itself?

+0

안녕 Avinash, 답장을 보내 주셔서 감사에 대해 설명합니다. 우리는 현재 프로젝트를 위해 스프링 부트를 사용하지 않습니다. 그러나 제공하신 링크는 ConfigurableApplicationContext.html # close()와 같은 방식으로 사용하고 있습니까? 그리고 우리는 여러 응용 프로그램이있는 컨테이너 (tomcat)를 종료 할 수 없습니다. – Bruce

+0

내 게시물을 편집했습니다. 그 점을 살펴보십시오. – Avinash