Spring MVC部署Tomcat后持续返回404错误排查求助
Spring MVC项目404问题排查指南
一、先确认请求URL是否正确
你的控制器映射的是/hello,完整请求URL需包含项目上下文路径:http://localhost:8080/[你的项目上下文路径]/hello
- 项目上下文路径默认是Maven打包后的war包名称(比如war包名为
mvcdemo.war,则路径为/mvcdemo/hello) - 仅当Tomcat配置了根上下文时,才能直接访问
/hello
二、检查文件目录结构是否匹配配置
根据InternalResourceViewResolver的配置,hello.jsp必须放在/WEB-INF/jsp/目录下,目录结构需严格对应:
项目根目录 ├── src │ └── main │ ├── java │ │ └── com │ │ └── mvcdemo │ │ └── HelloController.java │ ├── resources │ └── webapp │ ├── WEB-INF │ │ ├── jsp │ │ │ └── hello.jsp │ │ ├── web.xml │ │ └── spring-dispatcher-servlet.xml │ └── index.jsp(可选)
三、验证Maven依赖完整性
确保pom.xml包含Spring MVC和Servlet API核心依赖,避免因类缺失导致DispatcherServlet初始化失败:
<dependencies> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.20</version> <!-- 使用你实际依赖的版本 --> </dependency> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies>
四、查看Tomcat启动日志
检查Tomcat的localhost.log或日期命名日志文件,排查以下异常:
- DispatcherServlet初始化失败(如找不到
spring-dispatcher-servlet.xml) - 组件扫描失败(如
com.mvcdemo包下的Controller未被加载) - ViewResolver无法定位对应的JSP文件
五、额外排查点
- IDE开发环境下,确认Tomcat部署的是编译后的target目录,而非源码目录
- 执行
mvn clean install清理缓存并重新打包,避免旧编译文件干扰 - 核对
spring-dispatcher-servlet.xml中context:component-scan的包路径,需与Controller的包名com.mvcdemo完全一致
内容的提问来源于stack exchange,提问作者user15993896
相关产品推荐
相关产品推荐

