설치파일
1. JRE 설치 다운로드 링크
: 본인의 운영체제에 맞게 설치한다.
: Windows의 경우, C:\Program Files\Zulu\zulu-11-jre 경로로 설치될 것이다
2. 시스템 환경변수 설정
: 설정 후 IntelliJ 프로젝트를 한번 껏다 켜야 정상작동함
변수이름 : JRE_HOME
변수 값 : C:\Program Files\Zulu\zulu-11-jre
3. 톰캣 설정 (다운로드 링크)
: JDK 11버전 기준 톰캣 9 버전이 제일 호환성이 좋다
: 아래 중 운영체제에 맞게 다운로드한다
: 압축해제만 하면 되며, 위치는 아무데나 해도 된다
: 필자의 경우, 그냥 다운로드 폴더에 압축해제했다 (단, 실행을 위해선 경로를 알아야 한다)
C:\Users\nyong\Downloads\apache-tomcat-9.0.68-windows-x64
* bin : 톰캣 실행 및 종료 스크립트 파일이 들어있음
* conf : 서버 설정 파일이 들어있음
* webapps : 톰캣 위에서 실행할 웹앱의 기본 저장 경로. war파일을 둘 곳.
서버 실행 및 종료
1. Windows : cmd사용 (wsl아님)
반드시 파일이 있는 디렉토리로 이동 (본인이 압축해제한 경로의 bin폴더)
cd ~/Desktop/Downloads/apache-tomcat-9.0.68-windows-x64/apache-tomcat-9.0.68/bin
톰캣 실행
.\startup.bat
톰캣 종료
.\shutdown.bat
2. Mac
톰캣 실행
{username}@{root} bin % ./start.sh
톰캣 종료
{username}@{root} bin % ./shutdown.sh
3. 브라우저에서 localhost:8080 입력시 실행 화면 : 톰캣은 디폴트로 8080포트사용
WAR 파일 빌드
방법 1. SpringBoot Initializer를 통한 프로젝트 생성시 build옵션을 WAR로 하는 방법
방법 2. JAR => WAR 포맷 변경 방법
1. build.gradle 수정 후 refresh
plugins {
id 'org.springframework.boot' version '2.7.4'
id 'io.spring.dependency-management' version '1.0.14.RELEASE'
id 'java'
id 'war' // <= 추가 (순서 상관 없음)
}
2. 엔트리포인트 수정 (main메서드가 있는 ~~Application 클래스)
: SpringBootServletInitializer를 상속함 (방법 1로 진행했을 경우, 해당 클래스를 상속한 클래스가 별도로 마련되있음)
@SpringBootApplication
public class sampleApplication extends SpringBootServletInitializer { // <== 상속
public static void main(String[] args) {
SpringApplication.run(sampleApplication.class, args);
}
@Override // <== 애너테이션을 잊지말자
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // <== 메서드 오버라이드
return builder.sources(sampleApplication.class);
}
}
3. Gradle에서 bootWar 또는 war 한 번 실행
: 이 과정을 안할 경우, Jar파일로 빌드됨
4. 빌드
: 위의 Gradle에서 build를 선택하거나 터미널에 아래 명령어 입력
./gradlew build
5. war 파일 이동
: 톰캣 실행과 동시에 war파일을 실행시키기 위해서, webapps디렉토리에 넣어놔야한다
: war파일의 파일명이 ROOT인 경우엔 별도의 설정없이 실행이 가능하나,
다른 이름인 경우, conf 디렉토리의 server.xml에서 추가설정을 해야한다.
디렉토리
C:\Users\nyong\Downloads\apache-tomcat-9.0.68-windows-x64\webapps
6. server.xml 파일 추가 설정
: 실행중인 톰캣은 정지하고 진행하자 (./shutdown.sh)
: 파일의 아래 코드 부분에 표시한 코드 (<Context>태그 부분)를 추가로 작성한다
: docBase="이 부분"에 본인이 설정한 프로젝트 이름을 작성한다 (필자는 터미널에서 nano 사용함)
: 프로젝트명은 해당 파일에서 확장자인 .war앞의 이름
...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="프로젝트명" reloadable="false" > </Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
...
7. 실행
: 이제 톰캣을 실행하면 war파일을 압축해제하여 webapps에 동일한 이름의 디렉토리가 구성된다.
: 실행 후 http://localhost:8080/본인이설정한URI주소 에 접속해보자
(예를들어 필자는 controller에 "/v1/todo"로 설정했기에 이 주소를 기반으로 핸들러 메서드에 접근했다.
: 이로서 WAS(웹 애플리케이션 서버)가 성공적으로 배포 되었다
*주의할 점: 프로젝트의 코드상에 오류가 있을경우, 오류 화면으로 리다이렉트된다
톰캣 포트 변경 방법
: 톰캣 기본포트가 8080이므로, IntelliJ에서 개발과 동시에 사용하려면 충돌이 일어난다.
: 따라서 배포와 로컬 개발 포트를 분리시키는 것이 좋다
: 변경 방법은 server.xml에서 아래와 같이 변경 가능하다 (필자는 nano 를 사용했다)
//터미널에서 나노에디터를 통해 server.xml 열기
$ nano server.xml
// 나노에선 pageup /pagedown으로 이동하면 편하다
// 저장
ctrl+X
Y
엔터
'Codestates [Back-end] > 데일리 로그 [TIL]' 카테고리의 다른 글
22.10.20 AWS를 이용한 프론트 & 백엔드 협업 워크플로우 (0) | 2022.10.20 |
---|---|
22.10.29 기술 면접 준비 (0) | 2022.10.19 |
22.10.14 Spring WebFlux - Spring WebFlux (0) | 2022.10.14 |
22.10.13 Spring WebFlux - Operators (2) | 2022.10.13 |
22.10.12 Spring WebFlux - 스케줄러 (0) | 2022.10.13 |