几种开发过程中避免tomcat重启的方法

来源:互联网 发布:淘宝人群文案 编辑:程序博客网 时间:2024/04/29 22:06

 在使用Eclipse+Tomcat开发过程中,我们都曾经遇到经常因为修改一个java文件需要重启tomcat的问题。但是如果一个项目很大,需要重启的东西和时间较长的话,对于软件开发效率来说,我们就已经落后了,在这种情况下,如何解决重启问题是提升开发效率的一个很重要的因素。现在给大家介绍几种开发过程中避免tomcat重启的方法。


1. server.xml

Xml代码 
  1. <HostnameHostname="localhost" appBase="webapps"  
  2. unpackWARs="true"autoDeploy="true"  
  3. xmlValidation="false"xmlNamespaceAware="false">  
  4. <!-- 
  5. <Contextpath="/boio" docBase="D:/project/aaaa2.0/java/boio"debug="0" reloadable="true"/> 
  6. -->  

2. apache-tomcat-5.5.26\conf\Catalina\localhost\目录下面,建立一个aaaa.xml文件。

内容如下:

Xml代码 
  1. <?xmlversionxmlversion="1.0" encoding="UTF-8"?>  
  2. <ContextpathContextpath="/aaaa2" docBase="D:\project\aaaa2.0\java\aaaa2"reloadable="true" privileged="true"antiResourceLocking="false" antiJARLocking="false"/>  

3. apache-tomcat-5.5.26\conf\context.xml文件中,这种方式是把项目部署到tomcat的webapps目录下面,这样设置后修改的java文件不需要重新启动。

Xml代码 
  1. <ContextantiJARLockingContextantiJARLocking="true" antiResourceLocking="true">  
  2. <!-- Default setof monitored resources -->  
  3. <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  4. </Context>  

上述3种方式可以一试





以下内容延伸一下知识面:
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也有以下四种情况: 
1)在tomcat为debug 模式下,修改当前正在用的类的定义(包括:类名,方法,方法名称,参数等等……),需要重启tomcat。 
(我用的是myeclipse6但在debug下修改大部分代码是不需要重启的!) 2) 修改web元素,比如如果用struts的话,修改jsp页面,是不需要重启tomcat;修改action,不需要重启;修改form文件,有时要有时 不要。 
3)修改Tomcat的配置文件,需要重启tomcat,这个一定要重启才行。 

4)myeclipse有自动提示,当你修改需要重启的话它会弹出窗体提示,但是配置文件改动不提示。所以改动配置文件,一定要重启 tomcat。 

总结:如果项目大,redeploy和重启tomcat的系统开销是很大的,经常要等很长时间。修改项目里的类和修改项目里的配置文 件,redeploy和重启都可以实现改变,但重启时间太长,本人建议redeploy。 
0 0
原创粉丝点击