SpringMVC配置、注解完全正确但一直提示404
程序员文章站
2022-06-13 21:20:35
...
出现的问题
在学习springMVC时,测试的页面一直提示404,但检查后发现SpringMVC的配置(web.xml和spring-mvc.xml)、注解完全正确。
使用的是eclipse编辑器,后台并没有报错,于是使用log4j打印详细信息
log4j在debug模式下控制台的信息:
15:01:51,530 DEBUG DispatcherServlet:845 - DispatcherServlet with name 'dispatcher' processing GET request for [/sdibt_springmvc/hello]
15:01:51,542 DEBUG RequestMappingHandlerMapping:297 - Looking up handler method for path /hello
15:01:51,543 DEBUG RequestMappingHandlerMapping:305 - Did not find handler method for [/hello]
15:01:51,546 DEBUG SimpleUrlHandlerMapping:168 - Matching patterns for request [/hello] are [/**]
15:01:51,550 DEBUG SimpleUrlHandlerMapping:193 - URI Template variables for request [/hello] are {}
15:01:51,556 DEBUG SimpleUrlHandlerMapping:123 - Mapping [/hello] to HandlerExecutionChain with handler [org.springaaa@qq.com1c075db8] and 1 interceptor
15:01:51,557 DEBUG DispatcherServlet:931 - Last-Modified value for [/sdibt_springmvc/hello] is: -1
15:01:51,566 DEBUG DispatcherServlet:1018 - Null ModelAndView returned to DispatcherServlet with name 'dispatcher': assuming HandlerAdapter completed request handling
15:01:51,566 DEBUG DispatcherServlet:996 - Successfully completed request
分析控制台的信息
主要问题是hello这个controller方法找不到,于是怀疑java文件没有编译到WEB-INF的classes目录下。到Tomcat服务器的目录中找到本项目文件夹,到本项目的WEB-INF\classes下查看class文件有没有生成,果然,运行后为空。
解决
重新构建项目,即到eclipse菜单—>project—>clean,重新编译。问题解决了,可以正常访问页面。但新写的方法又提示404错误,再次手动构建项目才可以正常运行。
后来一想,之前为了eclipse启动快,把Build automatically(即保存时自动构建项目)给关闭了。这样需要每次自己手动构建项目,否则,不会对Java文件进行编译。
开启Build automatically后问题解决。
总结
出现404错误通常是关于服务器方面的问题,编辑器的配置也可能导致一些问题的出现。
本次404错误是没有编译Java文件,找不到controller的方法。在于将eclipse的Build automatically关闭了。