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

同一段Servlet代码在两个Tomcat项目中一个返回200一个返回404

排查Spring MVC Controller 404问题的思路

问题场景

个人项目HealthHelper中,通过Postman请求http://localhost:8080/HealthHelper/dietDiary/query/byTime,Tomcat v9.0能正常处理,返回200状态码,控制台输出符合预期。但将相同的QueryDietDiaryByDateAndTimeController代码复制到团队项目HealthyHelperServer后,请求http://localhost:8080/HealthyHelperServer/dietDiary/query/byTime返回404,控制台无任何输出。已排查以下项:

  • 代码一致性(Controller代码完全一致)
  • Tomcat运行状态及版本(均为v9.0,正常启动)
  • 项目facet配置(Java facet均为12)
  • URL路径正确性(已核对上下文路径和接口路径)

下一步排查方向

  • 检查Spring组件扫描配置
    确认团队项目的Spring配置文件(如applicationContext.xml或spring-mvc.xml)中,是否配置了正确的组件扫描路径,确保QueryDietDiaryByDateAndTimeController所在的包被包含在内。例如:

    <context:component-scan base-package="com.yourpackage.controller"/>
    

    若使用注解驱动(如@SpringBootApplication),需确认启动类所在包是否能覆盖Controller的包路径。

  • 核对Web.xml配置
    检查团队项目的web.xml中,DispatcherServlet的映射路径是否正确,是否拦截了接口请求。例如:

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    同时确认DispatcherServlet的配置文件路径是否正确,避免因找不到配置文件导致Controller未被加载。

  • 查看Tomcat部署日志
    启动团队项目时,仔细查看Tomcat的启动日志(如localhost.log或catalina.out),检查是否有Controller加载失败的异常信息,比如类初始化错误、依赖缺失等。

  • 检查项目依赖
    对比个人项目和团队项目的pom.xml(Maven)或build.gradle(Gradle),确认Spring MVC相关依赖的版本是否一致,是否存在缺失的依赖(如spring-webmvc)。

  • 验证Controller注解
    再次确认Controller类上的注解是否正确:

    • 类上是否标注了@Controller或@RestController
    • 请求映射注解@RequestMapping(或@GetMapping/@PostMapping)的路径是否与请求URL匹配,注意是否有多余的前缀或大小写问题
  • 检查项目部署路径
    在Eclipse中查看团队项目的部署路径,确认Tomcat实际部署的项目上下文路径是否为HealthyHelperServer,避免因部署时上下文路径被修改导致URL不匹配。

  • 清理并重新部署项目
    清理团队项目的编译目录(如target或build文件夹),然后重新编译部署,避免因旧的编译文件残留导致问题。


内容的提问来源于stack exchange,提问作者黃奕捷

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:30:59