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

Spring Maven Web应用部署Heroku遇404及DispatcherServlet类未找到错误

解决Spring Maven Web应用部署Heroku后404+DispatcherServlet类找不到的问题

从你提供的Heroku日志来看,核心错误是:

java.lang.ClassNotFoundException: org.springframework.web.context.DispatcherServlet

这个问题通常由两个常见原因导致,下面逐一给出解决方案:

1. DispatcherServlet类名配置错误

先检查你的web.xml(或者Java配置类)里的DispatcherServlet全类名是否正确。正确的全类名应该是org.springframework.web.servlet.DispatcherServlet,而不是日志里显示的org.springframework.web.context.DispatcherServlet——你大概率是把包路径写错了!

如果是用web.xml配置,修正后的代码示例:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

2. Maven依赖范围配置错误

如果类名是正确的,那大概率是Spring Web MVC的依赖没有被正确打包到部署包中。很多开发者会错误地把spring-webmvc的依赖范围设为provided,但Heroku的运行环境不会自带这个依赖,导致运行时找不到类。

打开你的pom.xml,找到spring-webmvc的依赖,确保它的scope是默认的compile(可以不写scope,默认就是compile):

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>你的Spring版本号</version>
    <!-- 移除scope="provided"这一行,除非你确认运行环境自带该依赖 -->
</dependency>

3. 重新打包部署

修改完成后,先在本地执行打包命令确保没有问题:

mvn clean package

然后提交修改并重新推送到Heroku:

git add .
git commit -m "Fix DispatcherServlet config and dependencies"
git push heroku main

完成后再访问你的应用链接,应该就能正常加载了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:52:01