반응형
인텔리제이(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 |