今天工作的时候帮同事解决一个404错误,弄了半个小时才找到问题,原来是没有配置好
<mvc:annotation-driven />
。其实在开发过程中遇到过很多次404错误,本文总结一下常见原因。
项目中一般都使用tomcat
加Spring MVC
组合,它们两的配置错误都可能导致404
${TOMCAT_HOME}/webapps/tenmao
,那么所有的URL都应该带有前缀tenmao
。如果忘记了,则会导致所有请求都是404。<servlet-mapping>
配置错误,比如<servlet-mapping>
<servlet-name>dispatch-servlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
以上这种配置,就要求所有的URL都以.do
结尾,如果新增的接口没有,也会导致404
DispatcherServlet
,也就不会执行方法org.springframework.web.servlet.DispatcherServlet#doService
常见原因是:
@RestController
或@ResponseBody
<mvc:annotation-driven />
handlerMap
,如果不在,则说明Controller或对应的方法注册失败org.springframework.web.servlet.handler.AbstractUrlHandlerMapping#lookupHandler
欢迎讨论,本人承诺非假日期间2小时内回复