Tomcat10运行springMVC项目浏览器访问出现java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet错误解决方法
·
1.问题描述
今天复习springMVC知识点时,写了一个简单的SpringMVC项目练练手,但是在Tomcat10运行时控制台没报错,浏览器出现java.lang.NoClassDefFoundError:javax/servlet/http/HttpServlet错误(如图1所示)

2.问题分析
出现了上述错误后,开始怀疑是代码出现问题,检查确认代码没有问题后将问题定位在tomcat服务器或项目依赖,在网上查阅一番发现不少同学出现了相同问题,问题关键就是tomcat10服务器,tomcat10将所有已经实现的API已经从 javax.到jakarta.(如图2所示)

3.问题解决
出现上述问题解决方法有以下两种:
3.1降低tomcat服务器版本,tomcat9替换tomcat10
因为tomcat10将所有已经实现的API已经从 javax.*到jakarta.*如果我们就是要用javax包下的接口或类只能降低tomcat版本
3.2修改项目的依赖
将mave依赖中的javax下的依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
替换为
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
导入依赖部署项目到tomcat10服务器即可,问题解决
更多推荐
所有评论(0)