日期:2014-05-16  浏览次数:20379 次

Tomcat 下,JSP文件修改后,重新部署,页面不变化的问题

现象:

没有动任何配置文件,今天就出现了修改的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会重新生成缺少的文件,而且日期也恢复到了当前