Java论坛网»Java技术»Tomcat不能自动更新jsp了。求助!
Tomcat不能自动更新jsp了。求助!
问?:
原来在Tomcat的发布目录中更改了jsp的内容后,刷新浏览器页面即能看到更新后的内容。现在不行了,一点要重新发布才能看到新的内容,或者删掉工作目录中对应的java和class文件。这是怎么回事啊?原来的用的是jdk1.4和Tomcat4.1,后来又装了jdk1.5和Tomcat5.5。难道是这个原因?但是这些全部重装也不行啊!但随便拿一台机器,装个jdk1.5+Tomcat5.5就是好的。折磨死我了,难道要我重装系统?
答!: 1:
用不着重装,我好像以前也遇过这个问题,问一下,你用的是什么IDE啊?
答!: 2:
tomcat 有个配置文件 你把它 改成热部署
答!: 3:
brycetoo :已经不是IDE的问题了。我随便手工写一个最简单的jsp都不能即时更新。
j2ee_wangdawei:有这个配置文件吗?我随便在一台机器上装个JDK+Tomcat,不用做任何改动就是热部署的啊?我原来的机器上也没有对Tomcat做过什么变更,甚至新装的5.5.17也是一个毛病。
j2ee_wangdawei:有这个配置文件吗?我随便在一台机器上装个JDK+Tomcat,不用做任何改动就是热部署的啊?我原来的机器上也没有对Tomcat做过什么变更,甚至新装的5.5.17也是一个毛病。
答!: 4:
刚才在家里试了一下,开始也有这个问题,但看似无意义的修改,似乎把问题解决了,虽然不知道怎么回事。
具体过程:把server.xml中的
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
autoDeploy先改成false,重起Tomcat,关闭Tomcat,再改回True,再起Tomcat就正常了。周一回公司里试试看。
具体过程:把server.xml中的
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
autoDeploy先改成false,重起Tomcat,关闭Tomcat,再改回True,再起Tomcat就正常了。周一回公司里试试看。
答!: 5:
不行的话用必杀招撒
到tomcat 目录下把work里面的你的项目删掉。刷新页面。必定自动更新。
不行你用西红柿丢我!
到tomcat 目录下把work里面的你的项目删掉。刷新页面。必定自动更新。
不行你用西红柿丢我!
答!: 6:
郁闷啊,公司里还是不行。到底怎么回事啊?
fangtaohbjjxy:难道我每次更新了jsp,都要删work目录?这不是个办法啊
fangtaohbjjxy:难道我每次更新了jsp,都要删work目录?这不是个办法啊
答!: 7:
不行的话用必杀招撒
到tomcat 目录下把work里面的你的项目删掉。刷新页面。必定自动更新。
不行你用西红柿丢我!
我都是这样解决的哈哈
到tomcat 目录下把work里面的你的项目删掉。刷新页面。必定自动更新。
不行你用西红柿丢我!
我都是这样解决的哈哈
答!: 8:
那我宁愿重新安装系统。这样调试,要死人的
答!: 9:
我备份好我的系统,然后重新装了我的机器,java相关的盘没有动,设置好java home,启动tomcat,一切正常了。难道只有重装一条路?加分到100了,有没有人拿啊?
答!: 10:
有新发现。看来是系统的问题了。用Editplus和Eclispe编辑的文件,文件的修改日期不会发生变化,Tomcat靠这个时间的变化来判断是不是需要更新class。用Notepad或DW或Uedit编辑的文件,修改日期就是变化的,Tomcat也就能正常更新class了。但问题是为什么这两个程序会不更新文件的修改日期呢?又是新问题了,继续探索中。
答!: 11:
改一下浏览器的--->Internet选项--->设置--->每次访问此页时检查
答!: 12:
我来取这100分吧! 修改Tomcat的server.xml配置
<Context path="/xkb" docBase="绝对路径指到你的项目" debug="5" reloadable="true" crossContext="true">
"reloadable="true""这个配置一定要加,允许你热启动 .
删除 work,重启,一定搞定
<Context path="/xkb" docBase="绝对路径指到你的项目" debug="5" reloadable="true" crossContext="true">
"reloadable="true""这个配置一定要加,允许你热启动 .
删除 work,重启,一定搞定
答!: 13:
都不对啊。我仔细观察过了。Tomcat的热发布,应该都是按照文件的修改时间来判定的。如果Jsp文件修改时间更新了,也就是jsp的修改时间晚于work目录下java的修改时间,那么Tomcat会将这个jsp翻译成java文件,那么自然这个java文件的修改时间要晚于相应的class文件,那么Tomcat就会编译这个java文件替换相应的class文件,于是刷新页面就会得到正确的更新。而我的系统,不知出于什么原因,部分软件(Editplus,大部分调用java的IDE包括Eclipse,Jbuilder,但除workshop以外,都不能更新被编辑文档的修改时间,造成Tomcat不会翻译这个jsp。用Notepad或其他软件,虽然jsp被更新了,但Tomcat在翻译这个jsp的时候,也没有更新对应的java文件的修改时间,导致java文件和相应class文件虽然内容不同(我已经反编译过class,可以保证),但Tomcat仍然认为java文件没有更新,不需要重新编译class文件,所以也就看不到更新后的jsp了。
啰嗦了一堆,看来这个帖子不该出现在这里了,应该挪到windows版去了。
啰嗦了一堆,看来这个帖子不该出现在这里了,应该挪到windows版去了。
相关JAVA教程:
html:text标签显示文字的问题
请教如何用java实现所谓的“只运行一个实例”
java转码的时候一个很奇怪的现象!!!!!!
Spring初学者问题
struts+Hibernate开发产生异常--忘指教
j2ee中的pointbase问题!!!!!
JBOSS安装失败是什么原因,J2EE高手来看下
webservice 复杂参数传递的问题!
java打印图像 图像变大了
hibernate小问题
想转行,大家给点意见
有关于通用查询,想了很久,但没有想通,大家进来讨论讨论(Hibernate)