死磕了一个来月的JavaEE项目今天终于可以进行第一次运行调试,不出所料,第一次运行调试是肯定见不到奇迹的,404错误,最难以捉摸,最头痛的错误
HTTP Status 404 - /VoteSystem/
type Status report
message /VoteSystem/
description The requested resource (/VoteSystem/) is not available.
Apache Tomcat/7.0.27
我这里的描述很奇怪,不是Action错误,也不是特定的路径错误,而是直接在项目根目录下面,这就有点难搞了,上网百度谷歌了很久,愣是找不到解决方法,很多都是说web.xml的路径错误,可我检查了半天,web.xml是完全没错误的,没办法,看来还是得自己来解决。
我的解决方法很笨拙,就是拿一个可以正常运行的项目来进行调试,对其增加一些东西,减少一些东西,看看到底哪里会引发这种错误。
于是用这种方法搞了几小时,基本确定是applicationContext.xml、daoContext.xml里面有错误了,经过不断检查修改与调试,基本修正了大部分的细节错误,如daoContext.xml里的dao命名的大小写错误、applicationContext.xml里的bean引用错误等等。
本以为没错了,结果调试运行还是404,这会儿真是超级沮丧啊,不过还是硬起头皮去看tomcat的运行日志,结果发现一个很重要的信息,applicationContext.xml没有初始化成功,原因是CronTrigger无法正确初始化,CronTrigger的Bean的id命名有误,奇怪了,命名没有错误啊,于是删掉整个和CronTrigger有关的Bean,再运行居然就没问题了!究其原因为何,还是不明白,不过这次也是学到了很多东西,那个CronTrigger,等这两天完成了项目要好好研究一下!
关于404,网上也有很多总结了,不过这里总结一个自己的实践经历:
一般与404有关的配置文件有:web.xml、applicationContext.xml、daoContext.xml,当路径没问题时,试着检查web.xml后面两个配置文件,极有可能就是这两个配置文件里的一些细小错误引发的。