现象:
没有动任何配置文件,今天就出现了修改的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会重新生成缺少的文件,而且日期也恢复到了当前
原贴链接:http://daidalei321.iteye.com/blog/909999
原文地址:https://blog.csdn.net/middlekingt/article/details/7869347
用MyEclipse进行web开发,因为机器配置不高,项目也不小,一直被一个问题所困扰:什么时候应该redeploy,什么时候应该重启 tomcat。如果项目大,redeploy和重启tomcat的系统开销是很大的,经常要等很长时间。
当然,你可以选择把其他不相关的项目先从webapps移出,这样tomcat加载的项目就少了,相应也就快了。
为了不把时间浪费在等待服务器启动,特地想了想需要重启tomcat和redeploy的情况:自己在开发的过程中,老是遇到myeclipse弹出“某某资源与系统不同步”,不能对程序文件修改、删除,当时,自己是重启tomcat来解决 这个问 题,但不行,后来对server的Tomcat redeploy一下,问题就解决了,过后自己对何时重启tomcat和reploy进行了总结了一下。
Tomcat 的reploy有以下四种情况:
1)当你用其他软件对web页面进行了编辑保存后,如果你不redeploy一下,当你再在myeclipse对这些web页面进行编辑 时,myeclipse就会弹出“某某资源与系统不同步”,无法打开web页面。
2) 当你修改了某个类,包括修改类里面的方法、成员和增加及删除了方法、成员,都可以通过redeploy,再刷新页面即可看到修改后的效果。
3) 当你修改了项目的配置文件,而非Tomcat的配置文件,也可以通过redeploy,再刷新页面即可看到修改后的效果。其实你不用redeploy,只 需刷新一下页面就行,tomcat自动帮你改变。
4) 发现myeclipse不太稳定,一般情况下,myeclipse会自动发布,也就是说,用redeploy的情况几乎没有。但是myeclipse不太 稳定,有的时候,不能自动发布,必须要redeploy。所以当你重启tomcat后还是得不到你的预期结果时候,考虑下redeploy。
重启tomcat也有以下四种情况:
(我用的是myeclipse6但在debug下修改大部分代码是不需要重启的!)
2)修改web元素,比如如果用struts的话,修改jsp页面,是不需要重启tomcat;修改action,不需要重启;修改form文件,有时要有时不要。
3)修改Tomcat的配置文件,需要重启tomcat,这个一定要重启才行。4)myeclipse有自动提示,当你修改需要重启的话它会弹出窗体提示,但是配置文件改动不提示。所以改动配置文件,一定要重启 tomcat。
另外:浏览器是有缓存的,有些情况没有变化是因为缓存没有更新,测试的时候可以用jsp语句关闭缓存,也可以采用访问另一个页再点回来,其余更新 和数据库连接的页面有时候有提示说更新失败,这种情况有时可以不理会(其实已经更新了)
转自:http://blog.csdn.net/evangel_z/article/details/7292724