You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringMVC报错java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet求助

解决Spring MVC启动时javax.servlet.http.HttpServlet类找不到的问题

问题现象

启动Spring MVC项目时出现以下错误:

SEVERE: Servlet [spring] in web application [/SpringMVC] threw load() exception
java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

问题分析

从你提供的pom.xml文件(注:你标注为spring-servlet.xml,实际是Maven项目配置文件)来看,javax.servlet-api依赖的scope被设置为provided:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

provided作用域表示该依赖由运行环境(如Tomcat等Servlet容器)提供,Maven不会将其打包到项目war包中。出现类找不到的问题,通常是因为:

  • 本地运行时,IDE未关联正确的Servlet容器,无法加载容器提供的Servlet API类
  • 使用的Servlet容器版本不支持Servlet 3.1规范,或容器本身缺失相关类文件

解决方案

  • 关联合规的Servlet容器:在IDE中将项目绑定到Tomcat 8.5及以上版本(Spring MVC 5.1.1要求Servlet 3.1+,Tomcat 8.5对应Servlet 3.1),确保运行时能加载容器自带的Servlet API。
  • 临时调整依赖作用域(仅本地调试):若只是本地开发调试,可将scope从provided改为compile,让Maven把Servlet API打包到war中。注意生产环境必须改回provided,否则会和服务器自带的API版本冲突,引发类加载异常。
  • 检查容器完整性:确认使用的Tomcat等容器完整,lib目录下的servlet-api.jar文件未缺失。

内容的提问来源于stack exchange,提问作者Roopa sree mohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:43:26