Declan Andrew
Kaminion
Declan Andrew
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 잡담 (1)
    • AI (0)
      • 논문 리뷰 (0)
    • 유니티 (1)
    • C (2)
    • Java (11)
    • 서버(Server) (10)
      • PHP (1)
      • DevOps (4)
    • JavaScript (12)
      • Node.js (1)
      • React.js (6)
    • 프론트엔드 (1)
    • 안드로이드 (2)
    • 알고리즘과 자료구조 (2)
    • 통계 (0)
      • 중학 통계 (0)
      • 고등 통계 (0)
      • 대학 통계 (0)
    • 컴퓨터과학 (19)
      • 디지털 논리회로 (6)
      • 인공지능 (3)
      • 데이터베이스 (3)
      • 정보통신망(네트워크) (4)
      • 프로그래밍 언어론 (0)
      • 운영체제 (3)
    • 수학 (8)
      • 기초 수학 (5)
      • 공학 수학 (3)
      • 게임 수학 (0)
    • 자격증 (12)
      • AWS (3)
      • 정보처리기사 (9)
    • 빅데이터 (1)
      • 이론 (0)
      • 실습 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 티스토리로이동

공지사항

인기 글

태그

  • 자바스크립트
  • js
  • 개발
  • java
  • Programming
  • 프로그래밍
  • Q-net
  • 인공지능
  • 데이터베이스
  • 수학
  • 정처기
  • 정보처리기사
  • array
  • 자바
  • OS
  • 프로그래머
  • 큐넷
  • Database
  • JavaScript
  • Ai
  • 기사
  • 자격증
  • 리눅스
  • qnet
  • react-native
  • 파이썬
  • 논리회로
  • React
  • DB
  • 리액트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Declan Andrew

Kaminion

Java

embed tomcat 설정하기

2020. 1. 29. 15:26
반응형

인텔리제이(Intellij)에서 내장톰캣을 사용하려면 얼티밋버전이어야한다는데,

사실 얼티밋버전이 아니더라도 내장톰캣을 사용할 수 있다! (조금 귀찮기는 하지만)

 

난 참고로 얼티밋 버전이지만 어떻게 될 지 몰라서 일단 설정법을 올려놓는다.

 

의존성 설정 (pom.xml)

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <tomcat.version>8.5.23</tomcat.version>
    </properties>
    
    
    <dependencies>
        <!--- 톰캣 컨테이너 의존성 --->
    	<dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        
		<!-- 아래는 톰캣에 컨테이너 대한 의존성들 -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper-el</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <version>${tomcat.version}</version>
        </dependency>
    </dependencies>

 

 

의존성을 설정하고나면, 실제 컨테이너를 동작시켜야한다.

 

실제 톰캣 가동 소스(Main.class)

// 톰캣서버가동
public class Main {
    public static void main(String[] args) throws LifecycleException, ServletException {
        String webappDirLocation = "src/main/webapp";
        Tomcat tomcat = new Tomcat();

        String webPort = System.getenv("PORT");

        if(webPort == null || webPort.isEmpty())
        {
            webPort = "8000";
        }

        tomcat.setPort(Integer.parseInt(webPort));

        StandardContext ctx = (StandardContext) tomcat.addWebapp("/",
                new File(webappDirLocation).getAbsolutePath());
        System.out.println(new File("./" + webappDirLocation).getAbsolutePath());

        File additionWebInfClass = new File("target/classes");

        WebResourceRoot resources = new StandardRoot(ctx);
        resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes",
                additionWebInfClass.getAbsolutePath(), "/"));

        ctx.setResources(resources);

        tomcat.start();
        tomcat.getServer().await();

    }
}

 

 

톰캣을 굳이 내장시켜서 쓰는 이유는

인텔리제이의 디버깅을 쓰기 위함이다!!

반응형

'Java' 카테고리의 다른 글

H2 데이터베이스 의존성 문제  (0) 2020.01.16
자바 Jsoup 웹 크롤링 EUC-KR encoding 문제  (0) 2019.12.28
MySQL JDBC 연동 시 타임존 에러  (0) 2019.12.10
Maven Project 빌드 시 (CLI 환경) 각종 설명 및 팁  (0) 2019.12.09
로그백 실행방법(logback, java)  (0) 2019.11.07
    'Java' 카테고리의 다른 글
    • H2 데이터베이스 의존성 문제
    • 자바 Jsoup 웹 크롤링 EUC-KR encoding 문제
    • MySQL JDBC 연동 시 타임존 에러
    • Maven Project 빌드 시 (CLI 환경) 각종 설명 및 팁
    Declan Andrew
    Declan Andrew
    궁금한 점은 메일 주세요. jwsoft0529@gmail.com 블로그 확인 잘 안합니다.

    티스토리툴바