已添加依赖包仍出现java.lang.ClassNotFoundException: DispatcherServlet异常
问题描述
我已经在Java构建路径的库以及lib文件夹中添加了所有所需的JAR包,但运行代码时仍抛出java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet异常。
附上我的web.xml配置代码:
<?xml version="1.0" encoding="UTF-8"?> <!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> <servlet> <servlet-name>frontcontroller</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>frontcontroller</servlet-name> <url-pattern>*.*</url-pattern> </servlet-mapping> </web-app>
报错截图:
解决方法
- 验证JAR包的部署状态:Java构建路径仅用于IDE编译阶段,服务器运行时会从项目部署目录的
WEB-INF/lib读取依赖。检查打包后的war包或服务器部署目录,确认包含spring-webmvc.jar(DispatcherServlet所在的核心包);若使用IDE自动部署,需确保IDE配置了将lib目录的JAR同步到服务器部署路径。 - 统一Spring依赖版本:确保
spring-webmvc与其他Spring相关JAR包版本完全一致,版本不兼容会导致类加载失败。 - 清理重构项目:删除IDE生成的
target目录(或编译输出目录),执行clean操作后重新编译、打包、部署,清除缓存带来的异常。 - 升级Servlet规范版本:当前使用的web-app_2_3.dtd版本过旧,建议更换为Servlet 3.0+规范,避免规范兼容问题。修改web.xml的DOCTYPE为:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
- 使用依赖管理工具:如果项目用Maven/Gradle,直接通过配置文件添加
spring-webmvc依赖,由工具自动处理依赖下载和部署,避免手动添加JAR的遗漏。例如Maven依赖配置:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>你的Spring版本号</version> </dependency>
内容的提问来源于stack exchange,提问作者Jahanvi
相关产品推荐
相关产品推荐

