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

启动服务器运行应用时出现HTTP Status 404 - Servlet DispatcherServlet不可用问题求助

解决DispatcherServlet不可用导致的HTTP 404错误

我来帮你搞定这个DispatcherServlet不可用的404问题!这是Spring MVC项目里挺常见的坑,咱们一步步排查:

1. 先检查web.xml里的DispatcherServlet配置

  • 首先得确认你在web.xml里正确注册了DispatcherServlet,标准配置应该是这样的:
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
  • 重点盯一下<servlet-class>的全类名,别写错包名或者类名,比如把org.springframework写成org.springframe这种低级错误很容易犯。
  • 别忘了设置<load-on-startup>1</load-on-startup>,这样服务器启动时就会加载这个Servlet,不会等到请求过来才加载,避免初始化失败。

2. 确认Spring Web MVC依赖有没有到位

  • 如果是Maven项目,去pom.xml里看看有没有加这个依赖:
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>你的Spring版本号</version>
    </dependency>
    
  • Gradle项目的话,对应依赖是:
    implementation 'org.springframework:spring-webmvc:你的Spring版本号'
    
  • 还要检查依赖有没有被意外排除,或者本地仓库里的jar包是不是没下载成功——有时候网络问题会导致依赖缺失,直接找不到DispatcherServlet类。

3. 验证DispatcherServlet类是否在类路径里

  • 打开项目的依赖库,找到spring-webmvc的jar包,看看里面有没有org.springframework.web.servlet.DispatcherServlet这个类。
  • 用IDE的搜索功能更方便:IDEA按Ctrl+Shift+N,Eclipse按Ctrl+Shift+T,直接搜类名。搜不到的话,肯定是依赖没加对。

4. 检查项目部署的细节

  • 确认项目已经正确部署到服务器(比如Tomcat),去服务器的部署目录里找WEB-INF/lib文件夹,看看里面有没有spring-webmvc的jar包。有时候IDE部署会漏掉依赖,得手动确认。
  • 看看服务器的日志,比如Tomcat的localhost.log或者catalina.log,里面会有更详细的错误信息,比如ClassNotFoundException,这能直接帮你定位问题根源。

5. 清理重建项目,排除缓存问题

  • 有时候编译后的文件有残留或者缓存,试试清理重建:
    • IDEA:点Build -> Clean Project,然后再Build -> Rebuild Project
    • Eclipse:点Project -> Clean,选中你的项目清理
  • 重启服务器,再重新部署一次,很多时候缓存导致的问题这样就能解决。

6. 检查Spring配置文件的位置

  • 如果你的DispatcherServlet需要加载自定义的Spring配置文件(比如dispatcher-servlet.xml),要么把文件放在WEB-INF目录下,要么在web.xml里通过<init-param>指定正确路径:
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
  • 要是配置文件路径错了,DispatcherServlet初始化失败,也会导致它不可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:01:35