로컬에서 스프링 프로젝트를 개발후 외부 톰캣에 배포할때 내장 톰캣과 외부 톰캣이 충돌이나서 제대로 실행이 안될수도 있습니다.
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
}
Gradle을 사용하여 WAR 파일을 빌드합니다.
plugins {
id 'war'
}
<Context path="/my-application" docBase="path/to/my-application.war" />
외부 톰캣이 사용하는 포트를 변경하려면 conf/server.xml 파일에서 요소의 port 속성을 수정합니다. 기본적으로 8080 포트를 사용합니다.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
위의 단계들을 따르면, 스프링 부트 애플리케이션은 내장 톰캣 대신 외부 톰캣 서버에서 실행될 것입니다.