现象:
没有动任何配置文件,今天就出现了修改的JSP内容在页面不体现。依然是老的页面内容
问题分析:
既然可以用过,所以系统应该是检测文件更新的,之所以不重新编译JSP,估计时文件日期的问题。因为tomcat是根据文件日期判断jsp文件是不是比现有的翻译好的.java文件新来决定是否重新编译。
经询问,昨天曾经把系统时间改成1年后,用来测试某些功能。后来又改回来了。
问题找到了。由于昨天调整日期,并修改了JSP文件,系统记录编译后文件的日期也是1年后。 时间恢复后,无论怎么修改,文件修改时间都不可能大于一年后,所以tomcat认为当前的编译好的文件更加新一些,所以不进行再次编译了。
问题解决:
查找Tomcat的临时工作目录,也就是存放JSP->Java->Class 的目录
标准目录是
\tomcat\work\Catalina\localhost\
某些使用Eclipse集成Tomcat的可能在
eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\
总之,以找到work 或者 Catalina 子目录为标准,必要时全盘搜索速度更快。
找到后会发现,在项目目录下的 org\apache\jsp 子目录下面存放着翻译好的.java 和 .class 文件
将 work\Catalina\localhost\ 下面的所有内容全部删除即可
再次访问,Tomcat会重新生成缺少的文件,而且日期也恢复到了当前