Spring MVC中DispatcherServlet异常:仅加载index.jsp,RequestMapping失效
解决Spring MVC DispatcherServlet失效、RequestMapping无响应问题
针对你遇到的404错误、仅能访问index.jsp、RequestMapping完全失效的问题,可以按照以下步骤排查:
1. 确认Controller包路径匹配
检查HelloController的实际包路径是否与applicationContext.xml中<context:component-scan>的base-package一致:
- 配置中指定的是
ua.ilya.springcourse,确保你的HelloController确实在这个包(或其子包)下,包名拼写、大小写完全正确,没有笔误。
2. 验证视图文件存在性
你的Controller返回hello_world,结合视图解析器的配置:
<property name="prefix" value="/WEB-INF/view/" /> <property name="suffix" value=".jsp" />
需要确认/WEB-INF/view/hello_world.jsp文件是否存在,文件夹名称(view而非views)、文件名拼写、大小写都要完全匹配。
3. 检查DispatcherServlet配置文件路径
确认applicationContext.xml确实位于/WEB-INF目录下,路径没有错误。如果文件位置不对,DispatcherServlet无法加载配置,会导致注解驱动和组件扫描失效。
4. 移除<absolute-ordering/>标签
web.xml中的<absolute-ordering/>标签会强制模块加载顺序,若未指定任何模块,可能干扰Spring组件的正常加载。暂时注释或删除该标签,重启服务后测试。
5. 检查Spring MVC依赖完整性
确保项目已正确引入spring-webmvc依赖,且版本与其他Spring组件一致(无版本冲突)。以Maven为例,pom.xml中需包含:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>你的Spring版本号</version> </dependency>
同时确认Tomcat的lib目录中没有冲突的Spring版本包。
6. 查看初始化日志定位问题
启动Tomcat时,查看控制台日志:
- 检查是否有DispatcherServlet初始化成功的日志,是否加载了
applicationContext.xml - 确认是否扫描到
HelloController并注册为Spring Bean
如果日志中没有相关记录,说明组件扫描或配置加载失败,需重新检查路径和配置。
7. 确认访问URL正确性
访问的URL应为http://localhost:端口号/项目部署名/hello:
- 若项目部署在Tomcat根路径,URL为
http://localhost:8080/hello - 不要遗漏项目部署名,或错误添加额外路径
内容的提问来源于stack exchange,提问作者N9verMore
相关产品推荐
相关产品推荐

