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

+ Recent posts