2014-09-23 2 views
2

저는 스프링 부트로 임베디드 Tomcat을 어느 정도로 구성 할 수 있는지 결정하기위한 연구 프로젝트를 진행하고 있습니다. 살펴보아야하는 항목 중 하나는 앱 관리자를 계속 사용할 수 있는지 여부입니다. 내 생각에 우리는 임베디드 바람둥이가있는 앱 관리자를 사용하고자하는 이유에 대해 구체적인 사례가 없으므로 아마도이 질문을 답할 수 없게 만듭니다.스프링 부트의 임베디드 tomcat에 tomcat 관리자 앱을 사용할 수 있습니까?

스프링 부트에서 사용하는 임베디드 tomcat 7에는 tomcat 관리자가 포함되어 있습니까? 응용 프로그램, 그리고 그렇지 않다면, 그것을 추가/활성화하는 데 무엇이 필요합니까?

+0

관리자 앱의 용도는 무엇입니까? 그것을 알지 못하면 그것이 의미가 있는지 여부를 말하기 어렵습니다. –

+0

@AndyWilkinson, 불행히도 나는 가지고 있지 않습니다. 나는 설명하기 위해 나의 질문을 편집했다. – gyoder

+0

@AndyWilkinson, Tomcat 관리자는 어떤 사용자가 로그인했는지, 자신의 비 활동 시간을 알기 위해 매우 유용했습니다. AFAIK Spring Boot는 활성 세션 수와 최대 세션 수에 대해서만 엔드 포인트를 제공합니다. –

답변

5

봄 부팅에 사용되는 임베디드 바람둥이 7은 바람둥이 관리자 응용 프로그램

에게이 포함되어 있습니까이 기본 세르 베트 구성을 대신 JAR의 WAR을 cuild 및 만들 메이븐/Gradle을 말할 필요가

아니요. 실제로 추가하지 않는 것이 좋습니다.

관리자 응용 프로그램의 기본 기능은 컨테이너를 중지하고 개별 응용 프로그램을 배포 및 배포 취소하지 않고 개별 응용 프로그램을 시작하고 중지 할 수있게하는 것입니다. Tomcat이 내장 된 Spring Boot를 사용할 때 응용 프로그램과 컨테이너를 단일 엔티티로 생각해야 응용 프로그램을 시작 또는 중지하고 컨테이너를 시작하고 중지하는 것이 하나의 작업입니다.

관리자 앱의 보조 기능은 OS 및 JVM 속성에 대한 액세스를 제공하는 것입니다.이 기능은 Spring Boot의 액추에이터가 이미 수행하는 것입니다.

추가/사용하려면 무엇이 필요합니까?

위의 사항에주의하지 않으려는 경우 관리자가 앱을 추가하기가 쉽습니다 (모든 사람이 예상대로 작동 할 것이라고 약속 할 수는 없지만 - 나는 바보 같은 독자를위한 운동으로 남겨 둡니다).

@Bean 
public EmbeddedServletContainerFactory servletContainer() { 
    return new TomcatEmbeddedServletContainerFactory() { 
     @Override 
     protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(
       Tomcat tomcat) { 
      tomcat.addUser("admin", "secret"); 
      tomcat.addRole("admin", "manager-gui"); 

      try { 
       tomcat.addWebapp("/manager", "/path/to/manager/app"); 
      } 
      catch (ServletException ex) { 
       throw new IllegalStateException("Failed to add manager app", ex); 
      } 
      return super.getTomcatEmbeddedServletContainer(tomcat); 
     } 
    }; 
} 

관리자 앱이 JSP를 사용하기 때문에 Jasper에 의존해야합니다. Maven을 사용한다고 가정합니다.

<dependency> 
    <groupId>org.apache.tomcat.embed</groupId> 
    <artifactId>tomcat-embed-jasper</artifactId> 
</dependency> 
+0

고마워, 잘 질문에 대답하지만, 그것은 질문을 구걸 ... 나는 springboot와 함께 응용 프로그램을 "다시 실행"할 때마다 20 + 이상한 두 번째 대기를 피할 수있는 방법이 없다고 가정합니까? – wired00

0

방법은 convert Spring Boot's JAR to WAR입니다. 그 후에는 호스팅 된 Tomcat 관리자를 사용할 수 있습니다.

당신은

import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.context.web.SpringBootServletInitializer; 

public class HelloWebXml extends SpringBootServletInitializer { 
    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 
} 
+1

jar 파일에 포함 된 tomcat을 사용하여이 작업을 수행 할 수 있는지 알고 싶습니다. – gyoder

관련 문제