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

STS创建Maven Spring MVC项目遇DispatcherServlet找不到及无lib目录问题求助

解决Spring MVC项目中DispatcherServlet类找不到的问题及Maven依赖疑惑

我来帮你拆解这个问题,其实你遇到的两个核心点——找不到DispatcherServlet和项目里没有lib目录,本质上都是Maven依赖管理的逻辑问题,不用手动创建lib目录,咱们一步步排查解决:

为什么项目里没有lib目录?

这是Maven的正常行为!和传统Web项目不同,Maven作为依赖管理工具,不会把依赖JAR包直接放在项目目录里,而是将所有依赖下载到本地Maven仓库(默认路径是~/.m2/repository)。当你打包或部署项目时,Maven会自动把需要的依赖JAR包复制到WAR包的WEB-INF/lib目录下,完全不需要手动维护。

为什么会出现ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet?

这个错误的核心原因是:你的项目没有正确引入Spring Web MVC的依赖,或者依赖没有被加载到项目的classpath中。具体排查步骤:

  1. 检查pom.xml的依赖配置
    打开项目根目录下的pom.xml,确认是否包含Spring Web MVC的依赖。如果没有,添加以下配置(替换成你需要的Spring稳定版本号):

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.20</version> <!-- 可根据需求选择合适版本 -->
    </dependency>
    

    注意:如果groupId、artifactId或者版本号写错,Maven会无法下载依赖,同样会导致类找不到的问题。

  2. 让Maven重新加载依赖
    添加依赖后,右键项目 → 选择Maven → Update Project,勾选Force Update of Snapshots/Releases,点击确定。这会让Maven重新下载并加载所有依赖到项目的classpath中。

  3. 检查Tomcat部署配置
    确保STS在部署项目时,已经把Maven管理的依赖包含进去:

    • 右键STS中的Tomcat服务器 → Open
    • 切换到Deployment标签,查看你的项目部署类型是war还是war exploded
    • 如果是war exploded,可以先执行Maven的package命令(右键项目 → Run As → Maven Package),生成完整的 exploded 目录结构后再部署。

可能的操作失误或理解误区

  • 项目模板选择问题:创建项目时如果选了基础的Maven Web模板,而非STS提供的Spring MVC模板,默认不会自动添加Spring Web MVC依赖,需要手动补全。
  • Maven命令未执行:如果没执行过mvn compile或mvn package,Maven不会把依赖同步到项目的编译目录中,导致Tomcat部署时找不到类。
  • 本地仓库依赖损坏:如果本地Maven仓库中的Spring Web MVC依赖包损坏,可以删除对应目录(比如~/.m2/repository/org/springframework/spring-webmvc),然后重新执行Maven Update来重新下载。

总结一下:完全不需要手动创建lib目录,Maven会帮你管理所有依赖。你现在的问题核心是依赖配置或加载异常,按上面的步骤排查pom.xml和Maven依赖加载即可解决。

内容的提问来源于stack exchange,提问作者CuriousMind

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:55:46