java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
less than 1 minute read
java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
- 자바 웹프로그래밍 Next Step 책을 보며 MVC 프레임워크를 구현하던 중에 오류가 발생했다.
@WebServlet("/user/create")
public class CreateUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final Logger log = LoggerFactory.getLogger(CreateUserServlet.class);
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
User user = new User(req.getParameter("userId"), req.getParameter("password"), req.getParameter("name"),
req.getParameter("email"));
log.debug("user : {}", user);
DataBase.addUser(user);
resp.sendRedirect("/user/list");
}
}
- @WebServlet 어노테이션으로 /user/create url 과 CreateUserServlet 클래스를 매핑했다.
- 그런데 클라이언트에서 localhost:8080/user/create 로 요청을 보내면 500 에러가 발생했다.
- 서버에서 ClassNotFoundException이 발생했다.
- 검색을 해보니 사용중인 Servlet 버전이 맞지 않아 발생한 오류였다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
참고