myeclipse不能自动编译和发布问题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > myeclipse不能自动编译和发布问题

myeclipse不能自动编译和发布问题

 2011/9/29 8:03:01  plasterdoll  http://plasterdoll.iteye.com  我要评论(0)
  • 摘要:部署方式:通过myeclipse自动部署项目到tomcat的webapp文件夹下,不是通过修改tomcat的配置文件。问题描述:修改.jsp、java等文件后,无法在浏览器中看到修改后的效果,需要重启tomcat,才可以看到。原因:解压后的原context.xml文件中的context节点默认有两个属性:antiResourceLocking="true"antiJARLocking="true",即Tomcat的资源锁定和Jar包锁定策略
  • 标签:Eclipse 编译 发布 myeclipse 问题

部署方式:通过myeclipse自动部署项目到tomcat的webapp文件夹下,不是通过修改tomcat的配置文件。

问题描述:修改.jsp、java等文件后,无法在浏览器中看到修改后的效果,需要重启tomcat,才可以看到。

原因:解压后的原context.xml文件中的context节点默认有两个属性:antiResourceLocking="true" antiJARLocking="true",即Tomcat的资源锁定和Jar包锁定策略。 当antiResourceLocking="true"时,tomcat每次启动时都会在temp目录下生成相应工程的临时文件,并把这些文件锁定,所以即使修改文件后,webapps文件夹下的修改时间会更新,但是temp文件夹下的修改时间是启动tomcate之前的修改时间。而用户在浏览器访问的资源却是temp下的,不是webapps下的。所以最终导致用户修改的效果无法在浏览器中看到。当antiResourceLocking=“false”后,temp目录下就不会生成临时文件了,这是用户访问的就是webapps下的资源了。

解决方法:查看tomcate/conf/context.xml中的 context节点。如果有antiResourceLocking这个属性,应该把他的值设为false。通过设置reloadable="true" 属性,该属性主要用于自动部署java文件的修改。

修改java文件后,点击保存,控制台应该会看到如下信息:

2011-09-27 1:07:11 org.apache.catalina.core.StandardContext reload
信息: Reloading this Context has started

说明修改的java文件生效了。

问题延伸:

1、修改并保存jsp或java文件,查看myecipse工作空间和tomcat的webapp目录下对应的文件最后修改时间是否为最新。

2、如果工作空间中的.class文件修改时间不能更新,说明myeclipse设置有问题,导致java文件无法自动编译。勾选Project-->build autoMaticaly即可。

3、如果工作空间中对应的.class文件的修改时间是保存的时间,而tomcate中修改时间不变,说明myecipse配置有问题,可能是因为tomcate的运行模式不是debug mode

4、如果两者相应位置的.class的修改时间都是刚保存的时间,说明myeclipse设置没有问题,而是tomcat配置文件有问题。查看tomcate/conf/context.xml中的 context节点。如果有antiResourceLocking这个属性,应该把他的值设为false。

5、如果antiResourceLocking=“true”,说明tomcat锁定了资源文件,导致不能更新资源。
发表评论
用户名: 匿名