今天碰到一个奇葩问题,浪费了我将近一个小时的时间,近乎吐血,故写下此文。
做开发,最难受的莫过于,五分钟能解决的问题,浪费了一个小时甚至更久。由于定制化需求,所以需要在程序中新增一个页面,另外做处理。于是我在controller中新增了一个请求,用于跳转页面的,这是一个再简单不过的改动,我以为会立即生效,请求成功后跳转到我想要的页面。结果,无论如何都跳转不过去,请求返回404错误。
我查找了web.xml文件,看了拦截器,全局搜索了关键字,也没有找到特殊的处理。新写的请求处,程序断点调试,怎么也不进入。而拦截器请求会等待几秒后进入,但是其中获取的值与我请求的值并不相同。期间公司断过一次电,maven服务器异常关机,重启等待了一段时间才恢复。而后尝试修改页面内容,修改原请求地址,均不生效,查看tomcat目录下,新页面确实是再其中,404错误莫名其妙。
在经过了长时间的排查问题后,被我寻出了一点蛛丝马迹。我在拦截器中增加了system.out.println()打印请求地址,然而我查看控制台,无论如何请求,都看不到打印信息。难道是编译问题,我再重复了一次maven update 清理操作。最终出现如下错误
The builder launch configuration could not be found.
这特么就是编译问题啊,结合我前面的种种迹象,断点也不进,信息也不输出,build又报错,程序虽然能跑,肯定是之前的代码,新修改的代码没有编译成功。右键项目,Properties,选择builders 删除了Miss 的builder项目
重新Maven Update,并且选择强制更新,前面一段时间更新不成功,很有可能是我未选择强制更新,也可能和当时Maven服务器网络挂了有关系。再次进行clean操作,最终没有提示上面的错误了。再次启动应用,终于成功了。
这次是真的运气衰到家了,没能第一时间确定问题的根本原因,浪费了这么多时间,上一次因为这种编译问题吐血还是几年前了。
还没有评论,来说两句吧...