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

jinmin2216님의 프로필 이미지
jinmin2216

작성한 질문수

스프링 웹 MVC

서블릿 애플리케이션 개발

http://localhost:8080/hello 입력시 오류

작성

·

322

0

항상 강의 잘 듣고 있습니다! 위와 같은 오류가 발생합니다.

위와 같이 모듈 구성되어 있고 설정은 강의 대로 했지만 톰캣은 최신버전인 10.0.2를 사용했습니다.

아래는 코드 내용입니다.

<HelloServlet> 

package me.jinmin;

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

public class HelloServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet");
resp.getWriter().println("<html>");
resp.getWriter().println("<head>");
resp.getWriter().println("<body>");
resp.getWriter().println("<h1>Hello Servlet</h1>");
resp.getWriter().println("</body>");
resp.getWriter().println("</head>");
resp.getWriter().println("</html>");
}

@Override
public void destroy() {
System.out.println("destroy");
}

@Override
public void init() throws ServletException {
System.out.println("init");
}
}

<web.xml>

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>me.jinmin.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

답변 4

1

저도 똑같은 에러상황이었는데 tomcat 10 -> 9버전으로 다운그레이드 하니까 됐습니다!

tomcat 10버전에서는 javax.servlet을 제공안해주는건지 아니면 제가 설정을 잘 못한 건지 안되네요...

0

현재 스프링 MVC 5는 톰캣10에서 실행이 불가능합니다.

tomcat9에서 10으로 넘어오면서 패키지가 변경되었습니다(javax.* -> jakarta.*). 따라서 javax.servlet을 사용하는 Spring MVC 5와는 호환이 안됩니다. 

아래 링크에 좀 더 자세하게 설명되어 있습니다.

톰캣 공식 홈페이지

https://tomcat.apache.org/download-10.cgi

연관 이슈

https://stackoverflow.com/questions/66217350/deploying-spring-mvc-5-on-tomcat-10-deployment-problems/66220939#66220939

https://github.com/spring-projects/spring-boot/issues/22414

0

백기선님의 프로필 이미지
백기선
지식공유자

해당 수업 4분 50초를 보면 서블릿 API가 실행 환경에서 제공이 된다는 가정하게 provided 스콥을 사용했는데, 에러 메시지를 보면 서블릿 클래스가 없다고 나오고 있으니 실행환경에서 서블릿 의존성이 제공되지 않은 걸로 보입니다. 어떤 방법으로 애플리케이션을 실행하셨는지 자세히 설명을 부탁드립니다. 이 경우는 코드에 문제가 있는게 아니라 실행한 방법에 문제가 있어 보입니다.

0

jinmin2216님의 프로필 이미지
jinmin2216
질문자

윈도우 사용중입니다!

jinmin2216님의 프로필 이미지
jinmin2216

작성한 질문수

질문하기