Today
-
Yesterday
-
Total
-

ABOUT ME

-

  • Spring Boot | bootWar, war 내,외장 톰캣으로 실행하기
    ▼ Backend/스프링 (Spring) 2023. 2. 27. 17:36
    반응형

    개요

    스프링 부트 war 패키징 프로젝트를 bootwar, war로 빌드하여 내장·외장 톰캣으로 실행해본다.

    내장·외장 톰캣의 성능

    내장·외장 성능에 대해서 유의미한 큰 차이는 없다고 한다. 하지만 외장 톰캣에서 virtual host 같은 기능의 구성 시 간단하게 적용 가능하다.

    virtual host

    도메인 host에 따라 각각의 다른 루트 컨텍스트를 갖게하여 하나의 웹 애플리케이션 배포만으로 마치 여러 애플리케이션을 운영하는것처럼 하는 기능

    bootWar

    내장·외장 톰캣 실행 가능

    war

    외장 톰캣으로만 실행 가능

    패키지 구성의 차이

    bootWar의 경우, 내장 톰캣으로 실행이 가능 하게 해주는 WEB-INF > lib-provided 구성이 존재한다.

    bootWar war
    WEB-INF WEB-INF
    META-INF META-INF
    org  

     

    배포 실습

    구성 환경

    Java 1.8, Spring Boot 2.7.8, Gradle, IntelliJ Community

    프로젝트 환경 - Spring initializr

    테스트 컨트롤러 생성

    호출 테스트를 위해 컨트롤러를 생성한다.

    bootWar 빌드

    2가지 방법으로 빌드 할 수 있다. IDE 를 통해 하는 방법과 gradlew 으로 빌드하는 방법을 소개한다.

    IntelliJ

    gradlew

    프로젝트 경로로 이동, 아래 명령어 입력

    ./gradlew bootWar

    bootWar 구조 (/프로젝트/build/libs)

    내장 톰캣

    실행

    CMD 창에서 프로젝트 경로/build/libs 로 이동, 아래 명령어 입력

    java -jar toy-0.0.1-SNAPSHOT.war

    종료

    실행중인 CMD 창 닫기

    외장 톰캣

    톰캣 설치 - Download

    사용중인 운영체제에 맞는 파일을 다운로드 받는다.

    구조

    프로젝트 war 파일을 webapps 경로로 이동시킨다. (톰캣 설치 경로/webapps)

    server.xml 수정 (톰캣 설치 경로/conf)

    Context 추가

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
      <!-- 추가 -->
      <Context docBase="toy-0.0.1-SNAPSHOT" path="/" reloadable="true" source="org.eclipse.jst.jee.server:toy"></Context>
    </Host>

    실행 (톰캣 설치 경로/bin)

    ./startup.sh

    종료 (톰캣 설치 경로/bin)

    ./shutdown .sh

     


    war 빌드

    2가지 방법으로 빌드 할 수 있다. IDE 를 통해 하는 방법과 gradlew 으로 빌드하는 방법을 소개한다.

    IntelliJ

    gradlew

    프로젝트 경로로 이동, 아래 명령어 입력

    ./gradlew war

     

    war는 외장 톰캣으로만 실행이 가능하며, 위의 bootWar 외장 톰캣 실행 방식과 동일한 방법으로 실행 가능하다.

     

    반응형

    댓글

Designed by Tistory.