인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Hyeongjun Kim님의 프로필 이미지
Hyeongjun Kim

작성한 질문수

스프링 부트 - 핵심 원리와 활용

내장 톰캣2 - 서블릿

내장톰캣 서블릿 강의를 듣는 도중 문제가 생겼습니다.

작성

·

2K

2

[질문 내용] 내장톰캣 서블릿 강의 코드를 따라 작성하고 실행하는 도중 아래와 같은 문제가 발생했습니다. 제가 따로 작성한 코드도 없고 그냥 파일생성과 붙여넣기만 했는데.. 실행이 안되네요..

 

Gradle 설정 문제인가 싶어 Setting에 default 를 Intellij 로 바꾼 뒤 다시 실행했더니 아래와 같은 에러 메시지가 떴습니다.

 

그리고 영한님과 다르게 main 실행 후

디랙토리에 아래 사진과 같은 패키지가 생성되었습니다.

문제가 무엇일까요?

 

답변 2

10

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Hyeongjun Kim님^^

다음 부분을 메뉴얼에 업데이트 해두었습니다. (업데이트 날짜 2023-03-03)

다음을 참고해서 적용해주세요.

 

실행시 특정 환경에서 다음과 같은 오류가 발생하는 경우가 있습니다.

Caused by: java.lang.IllegalArgumentException: The main resource set specified [...\tomcat\tomcat.8080\webapps] is not valid

이런 경우에는 다음을 참고해서 코드를 추가해주시면 됩니다.

...
//서블릿 등록

Context context = tomcat.addContext("", "/");

//== 코드 추가 시작==

File docBaseFile = new File(context.getDocBase());

if (!docBaseFile.isAbsolute()) {

    docBaseFile = new File(((org.apache.catalina.Host) context.getParent()).getAppBaseFile(), docBaseFile.getPath());

}

docBaseFile.mkdirs();

//== 코드 추가 종료==

tomcat.addServlet("", "helloServlet", new HelloServlet());

context.addServletMappingDecoded("/hello-servlet", "helloServlet");

tomcat.start();
...

감사합니다.

0

안녕하세요, 저도 같은 오류가 발생해서 같은 방법으로 해결했는데요,

혹시 실행환경에 어떤 차이가 있어서 그런걸까요..?!

Hyeongjun Kim님의 프로필 이미지
Hyeongjun Kim

작성한 질문수

질문하기