개발 관련/Java

IntelliJ Community Edition (무료버전) 에서 tomcat 연동하기

snoworca 2023. 4. 10. 09:48

교육용으로 만든 자료를 정리한 것이다.

 

 

IntelliJ Community Edition 은 무료지만, JAVA EE 지원이 되지 않습니다.

하지만, Smart Tomcat 이라는 플러그인을 설치하면 간단한 서블릿 웹 앱 프로젝트에 한해서 실행 및 디버깅을 진행할 수 있습니다.

 

(1) Gradle 프로젝트 생성

Gradle 프로젝트로 새 프로젝트를 생성합니다

 

(2) Smart Tomcat 플러그인 설치

상단 메뉴 File => Settings 에 들어가서 좌측 탭의 Plugins 를 선택합니다. 그 뒤에 Smart Tomcat 을 검색하여 설치합니다.

 

 

(3)  build.gradle 편집

build.gradle 파일 상단에 (repositories 블럭 밑) 아래와 같이 입력해줍니다.

sourceSets {
    def webappDir = file('src/main/webapp')
    main {
        java {
            srcDirs 'src/main/java'
        }
        resources {
            srcDirs webappDir
        }
    }
   doLast {
        main.resources.srcDirs*.mkdirs()
        new File(webappDir, 'WEB-INF').mkdirs()
        new File(webappDir, 'META-INF').mkdirs()
    }
}

 

dependencies 블럭에 다음과 같이 Servlet 의존성을 추가해줍니다..

dependencies {

    compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'


그 뒤로 gradle task 중에 clean 을 더블클릭하여 실행하면 자동으로 웹 앱 경로가 생성됩니다.

 

(4)  예제코드 작성

 

테스트할 수 있는 예제파일도 두 개 만들어봅니다.

 

src/main/webapp 경로 밑에 index.jsp 를 추가하고, 아무 패키지 경로 밑에 HelloServlet 클래스를 하나 추가하였습니다. 

각각의 코드는 다음과 같습니다.

 

 

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Hello</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

 

HelloServlet.java

package org.example;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                                                                            throws ServletException, IOException {

          PrintWriter printWriter = resp.getWriter();
          printWriter.println("<html><body><h1>Hello, World!</h1></body></html>");

      }
}


(5) Smart Tomcat 설정

상단 메뉴에서 Run => Edit Configurations... 를 선택합니다. 창이 뜨면 + 버튼을 눌러 "Smart Tomcat" 을 선택합니다. 

 

아래 스크린샷은 이미 tomcat 경로가 설정되어 있는 상태입니다. 하지만, 최초로 이 창을 띄웠다면 Tomcat Server 의 위치를 먼저 지정해야합니다.  Tomcat 9 버전의 zip 파일을 다운로드 받아 (  https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.73/bin/apache-tomcat-9.0.73.zip )  압축을 해제하고 그 위치를 지정합니다. 

 

이후 다른 설정은 위 (3) 번 과정이 제대로 진행 되었다면 자동으로 입력된 상태로 나타납니다.
Name을 원하는 값으로 변경하세요. 

OK 버튼을 누르면 설정이 저장되고 창이 닫힙니다.

 

 

(6) 디버깅 모드로 실행

 

벌레모양 아이콘 클릭

 

웹 브라우저에서 서블릿에 접속한 모습

 

디버깅까지 잘 되는 것이 확인되지만, 코드를 저장하면 자동으로 반영되는 핫 디폴로이는 자동으로 되지 않습니다. 

하지만, 단축키 Ctrl+Shift+F9 를 눌러 현재 작성중인 코드에 대한 핫 디폴로이를 진행할 수 있습니다. 

 

감사합니다.