ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인텔리제이 커뮤니티 버전에서 레거시 스프링외장 톰캣 실행하기
    자바(JAVA) 2024. 8. 23. 16:21

    이클립스에서 외장 톰캣을 이용하여 작업하던 프로젝트들을 인텔리제이로 옮겨 사용하게 된 경우들이 있었다.

    이때 gradle과 스프링부트를 사용한 프로젝트라면 별도로 설정할 필요 없이 아래와 같이 잘 실행할 수 있다.

    Gradle 스프링부트 프로젝트 이전 시 거의 자동으로 나타나는 설정

    인텔리제이 우측에 나타나는 gradle마크를 클릭하면 저런 버튼이 나온다. 이때 clean한 다음 build를 실행하면 war파일도 만들어지고 프로젝트를 위한 빌드도 끝이 난다.

     

    하지만 레거시 스프링 Maven 또는 빌드 도구 자체가 없는 프로젝트라면..? 처음엔 굉장히 골치가 아팠다.

    검색 결과 다행히 방법은 있었지만 처음 찾은 것들은 대부분 인텔리제이 Ultimate 버전을 쓰는 경우였다.

    나의 경우 Community(무료 버전)만 사용 중이었기에 Ultimate버전에서 제공하는 Tomcat server라는 모듈을 사용할 수가 없었다.

     

    그리하여 추후 이같이 외장 톰캣을 써야하는 경우를 위해 가이드 삼아 적어보도록 하겠다.

    형상 관리는 Git을 사용하는 것을 전제로 한다.

     

    레거시 스프링 + Maven/빌드도구 없음의 경우

    - 먼저 이클립스 프로젝트를 Git으로 올린 것을 인텔리제이 프로젝트가 모여있는 곳으로 가져온다.

    이후 프로젝트를 켠 다음 Eclipse Project, Maven Project중 어떤 것으로 받아올 것인지 묻는 곳이 나온다.

    이 경우 기존에 이클립스에서 있던 프로젝트이므로 우선 Eclipse Project를 선택하였다.

     

    - 우측 상단 톱니바퀴 클릭 -> Project Structure 클릭 -> Project의 SDK를 기존 프로젝트에 맞게 설정해준다.

     

    - 해당 프로젝트 자체도 인식시켜주어야 한다. Project Settings - Modules에서 +로 생성 - import module 클릭 -> 가져올 프로젝트 파일 선택 (Maven이면 Maven으로, 빌드도구가 없다면 Eclipse로 선택) -> Project Structure 창을 껐다가 다시 켜면 해당 프로젝트 모듈이 생성된 것을 볼 수 있다.

     

     

    - 프로젝트 실행 시 필요한 톰캣 또한 설정해줄 플러그인이 필요하다.

    좌측 상단 File - Settings 선택 - Plugins에서 Smart Tomcat 검색 후 설치 (하기의 Pro는 유료 버전으로 보인다.)

     

    - 우측 상단 Current File -> Edit Configuration 클릭 -> Run/Debug Configurations에서 + 클릭 -> Smart Tomcat 선택

    - 하기와 같은 설정 창에서 Configure 클릭

     

    - Settings에서 Tomcat Server -> +클릭하여 사용할 톰캣 파일 선택 (이때 사용할 톰캣 파일은 미리 Apache Foundation에서 다운 받아온다. 기본 설정의 톰캣이면 된다.)

     

    - 위와 같이 톰캣 생성 후 다시 Run/Debug Configuration으로 돌아온다. 이후 Tomcat server 드롭다운 화살표를 클릭하면 방금 생성한 톰캣이 보인다. 해당 톰캣 선택

     

    <그 외 설정할 것>

     

    - Server port: 실제 접근할 포트이다.

    - Admin port: 톰캣을 실행하게 될 포트이다.

    - Before Launch: Build / 실행 시 자동으로 Build를 시켜주는 것이 default값으로 보인다.

    - Context path: /여야만 한다. 그래야 'http://localhost' 으로 접근 시 프로젝트 경로에 접근한다는 뜻이다.

    ex) Context path가 '/test'라면 사이트 루트 경로가 'http://localhost/test'가 되어버린다.

     

    - Catalina base: 폴더 아이콘 클릭 - .SmartTomcat 경로로 접근 시 해당 프로젝트 명으로 된 폴더가 나타난다.

    [주의할 점]

    1) 해당 폴더로 OK를 하는 것이 아닌 해당 폴더 바로 하위에 있는 모듈 명칭을 선택하는 것

    ex) 프로젝트 root name이 tester, 프로젝트 모듈 명칭이 test 라면 선택해야할 경로는 아래와 같다

    ./SmartTomcat/tester/test

    실제로 모든 설정이 끝나고 프로젝트 실행 후 test 경로를 클릭해보면 하위에 톰캣의 설정파일들이 들어있는 것을 볼 수 있다.

    2) 프로젝트 모듈을 먼저 생성하지 않았다면 해당 ./SmartTomcat/tester/test와 같은 경로는 보이지 않는다.

     

    - Deployment directory: 보통은 src/main/webapp에 존재한다. 이와 다르다면 로컬에서 servlet.xml등 스프링의 설정파일이 있는 WEB-INF와 css, img, js가 있는 resources 파일의 바로 상위 폴더를 선택한다.

    - Use classpath of module: 위에서 생성한 프로젝트 모듈을 선택한다.

     

    위 작업을 마무리 후 프로젝트를 확인하면 좌측에 프로젝트 파일들이 보이고 (이는 좌측 상단에서 Project라고 되어있는 것을 Project Files로 바꿔주면 보이기는 한다. 다만 프로젝트라고 인식하는건 위 작업들을 마쳤을 때 이다.)

    우측에는

    Maven의 경우 이미지와 같은 Maven 명령어 목록이 보인다.

    (이 경우 수동으로 build를 해주고 싶다면 clean 클릭 - 완료 후 install을 클릭해주면 된다.)

     

    빌드도구 없음의 경우 별개로 보이는 건 없다.

     

    위 두 가지 경우 모두 우리가 SmartTomcat으로 생성한 외장 톰캣을 실행하면 자동으로 build도 이뤄지며 프로젝트를 드디어 실행할 수 있게 된다.

     

    servlet.xml 파일 등에 문제가 없다면 실행 시 정상 작동하는 점을 확인할 수 있다.

     

    문제 해결!

     

    '자바(JAVA)' 카테고리의 다른 글

    Serialization, 직렬화  (0) 2023.07.26
    생활코딩 JAVA 입문 수업  (0) 2021.12.12
Designed by Tistory.