[Tomcat] Spring Boot 프로젝트 Tomcat 10에서 배포하기

2021. 12. 1. 15:02Server

[Tomcat] Spring Boot 프로젝트 Tomcat 10에서 배포하기

 


Tomcat9에서는 Spring Boot 프로젝트를 WAR파일로 package한 뒤, Tomcat 폴더 내의 webapps에 ROOT.war로 올리면 Spring Boot가 기동되었는데 Tomact10부터는 조금 달라졌습니다.

 


 

| 기본적인 Spring Boot 프로젝트 생성

* 프로젝트가 이미 준비되었으면 아래 [배포] 단계로 넘어가 주세요.

 

[TestTomcatApplication.java]

@SpringBootApplication
public class TestTomcatApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(TestTomcatApplication.class, args);
    }

}

| SpringBootServletInitializer를 상속 받습니다.

 

 

[TestController.java]

@RestController
public class testController {

    @GetMapping("/")
    public String testMainPage() {
        return "안녕하세요";
    }
}

| 화면 없이 빠르게 테스트 하기 위해 RestController를 사용했습니다.

 

 

[pom.xml]

<groupId>com.example</groupId>
<artifactId>testTomcat</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>testTomcat</name>
<description>testTomcat</description>
<packaging>war</packaging>

...
<dependency>
  	<groupId>org.springframework.boot</groupId>
  	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  	<groupId>org.springframework.boot</groupId>
  	<artifactId>spring-boot-starter-tomcat</artifactId>
  	<scope>provided</scope>
</dependency>
...

| 외부 WAS를 사용하기 위해 tomcat의 scope는 provided로 설정해 주세요.

또한 WAR파일로 배포할 것이기 때문에 <packaging>war</packaging>을 추가합니다.

 

 

 

 

 

 

| 배포 (apache-tomcat-10.0.13) 사용

| tomcat 최상위 폴더에 webapps-javaee 폴더를 새로 만들어 줍니다.

* webapps 폴더에 있는 파일은 삭제해 주세요. webapps-javaee -(복사)-> webapps로 파일이 복사됩니다.

 

이유)

더보기

The Apache Tomcat Project is proud to announce the release of version 10.0.13 of Apache Tomcat. This release implements specifications that are part of the Jakarta EE 9 platform.

Applications that run on Tomcat 9 and earlier will not run on Tomcat 10 without changes. Java EE based applications designed for Tomcat 9 and earlier may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat will automatically convert them to Jakarta EE and copy them to the webapps directory. This conversion is performed using the Apache Tomcat migration tool for Jakarta EE tool which is also available as a separate download for off-line use.

The notable changes in this release are:

  • Experimental OpenSSL support through the Panama API incubating in Java 17, with support for OpenSSL 1.1+
  • Add support for custom caching strategies for web application resources. This initial implementation allows control over whether or not a resource is cached.
  • Improve robustness of JNDIRealm for exceptions occurring when getting the connection.

Full details of these changes, and all the other changes, are available in the Tomcat 10 changelog.

 

출처 : http://tomcat.apache.org/

 

 

 

| 파일명을 ROOT로 변경해 줍니다.

변경하지 않으면, localhost/(프로젝트명)이 기본 경로가 됩니다.

 

 

 

 

| /bin/startup.bat 파일을 실행하면 정상적으로 Spring이 구동되는것을 확인할 수 있습니다.

 

예전에 tomcat8, tomcat9까지 webapps에 ROOT.war을 올려서 배포했는데 tomcat10부터는 변경이 된 것 같습니다.