1. 의존성 설정 : buil.gradle > dependencies에 embedded tomcat 의존성 추가
추가하는 방법 : 메이븐저장소(https://mvnrepository.com/) - embedded tomcat 검색 - Tomcat Embed Core 클릭 - 최신 버전 클릭 - 탭 중에서 Gradle클릭 - implementation부분부터 끝까지 복사 - buil.gradle파일의 dependencies{} 내부에 추가
2. WebApplicationServer.java 코드 추가
public static void main(String[] args) throws Exception {
// 톰캣의 루트 디렉토리가 webapps이며 톰캣을 8080포트로 실행할것이다.
String webappDirLocation = "webapps/";
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
// 경로로 접근했을때 해당 디렉토리(webapps) 안에서 톰캣이 파일을 찾는다
tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
log.info("configuring app with basedir: {}", new File("./" + webappDirLocation).getAbsolutePath());
tomcat.start();
tomcat.getServer().await();
}
✏️참고 1
wepapps 안에는 아무것도 없는데 어떻게 찾아서 실행하나? (현재 webapps 비워져있는상태라면) :
ctrl+alt+shift+s(Project Structure 창 오픈) > Modules > 프로젝트 - main 클릭 > Output path에서 out 부분을 wepapps\WEB-INF로 변경 (produc~부분은 지움)
*main밑에 test도 클릭해서 Test output path 해당 부분 똑같이 변경
✏️참고 2
위 설정을 마치면, 톰캣이 해당 클래스를 실행할 수 있다.
* 구글에 application developer's guide - deployment - apache tomcat 8.5.42 검색(build.gradle 추가한거보면 8.~ 버전 사용했으므로) > Application Developer's Guide 페이지의 Standard Directory Layout 부분에서 (루트디렉토리 생략)/WEB-INF/classes/ 부분 확인하면 'This directory contains any Java class files' 라고 써있음을 확인 가능
✏️참고 3
위 설정을 마치면,
프로젝트-src-main-java-org.example-WebApplicationServer에서 org.example-WebApplicationServer 이 부분을 webapps/WEB-INF/classes밑에 들어가게 해줌. 따라서 톰캣이 실행될때 classes밑에서 자바 클래스 찾아 실행하게 되는것.
'Java' 카테고리의 다른 글
[Java] Reflection API (0) | 2024.02.18 |
---|---|
[Java] Iterator, Enumeration (0) | 2023.10.17 |
[Java] Optional이란? Optional 개념 및 사용 (0) | 2023.10.05 |
[Java] import static 사용하는 이유 (0) | 2023.08.09 |
[Java] Static - 정적 변수와 메서드 (0) | 2023.06.13 |