关于Tomcat 6的热部署和热加载 转

http://greemranqq.iteye.com/blog/1774258 
http://www.cnblogs.com/-lpf/p/4317281.html
我在项目开发过程中,经常要改动JAVA/JSP 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载:

 

1.热加载:在server.xml -> context 属性中 设置 reloadable="true"

 

Java代码  收藏代码
  1. <Context docBase="xxx" path="/xxx" reloadable="true"/>  

    

 

2. 热部署:在server.xml -> context 属性中 设置  autoDeploy="true"

  

Java代码  收藏代码
  1. <Context docBase="xxx" path="/xxx" autoDeploy="true"/>  

 

3.区别:

      热加载:服务器会监听 class 文件改变,局部进行加载,不清空session ,不释放内存。开发中用的多,但是要考虑内存溢出的情况。

 

      热部署: 整个项目从新部署,包括你从新打上.war 文件。 会清空session ,释放内存。项目打包的时候用的多。

 

也可以通过Eclipse上设置实现上述配置文件的修改 

Eclipse的工程名右键: properties->Tomcat->General->Make this context as reloadable(reloadable="true")不要选中 Eclipse的工程名右键:Tomcat project->Update Context Definition

 

注意:source 属性有些版本不支持,容易出错,去掉就行 

二。

不重启Tomcat有两种方式:热部署、热加载 
  热部署:容器状况在运行时重新部署整个项目。这类环境下一般整个内存会清空,重新加载,这类方式 
  有可能会造成sessin丢失等环境。tomcat 6确实可以热部署了,而且对话也没丢. 
  热加载:最好是在调试过程中使用,免患上整个项目加载,Debug标准样式支持热加载。容器状况在运行时重 
  新加载转变编译后的类。在这类环境下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方 
  法。一般转变类的布局和模型就会有异常,在已经有的变量和方法中转变是不会出问题的(Eclipse、 
  MyEclipse8、JBuilder、IntelliJ IDEA…)。 
  常用的一定第二种:热加载了,设置如下! 
  在tomcat的conf中的server.xml中的host设置中添加<Context path="/test" 
  docBase="D:/develop/test" 
  debug="0" privileged="true" reloadable="true"/> 
  reloadable="true" !最重要 
  它内里有很多属性,意义如下: 
  1>path:指定拜候该web应用的URL进口; 
  2>docBase:指定web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性【默认 
  指向tomcat的webapps】的相对于径;要是Web应用是个war文件,则指定war文件的路径。 
  3>className:指定使成为事实Context组件的Java类的名字,这个Java类必须使成为事实org.apache.catalina.Context 
  接口,该属性的默认值为org.apache.catalina.StandardContext。 
  4>reloadable:要是这个属性设置为true,Tomcat服务器在运行状况下会监视在WEB-INF/classess和WEB- 
  INF/lib目次下的class文件的改动,以及监视web应用的WEB-INF/web.xml文件的改动。要是检测到的class 
  文件或者web.xml文件被更新,服务器会自动加载Web应用。该属性的默认值为false.在web应用的开发和调 
  试阶段,把reloadable设为true,可以方便对web应用的调试。在web应用正式发布阶段,把reloadable设为 
  false,可以减低tomcat的运行负荷,提高Tomcat的运行性能。 
  5>cachingAllowed:要是为true,标示允许启用静态资源的缓存。使用缓存能提高拜候静态资源的效率。 
  tomcat把那一些时常被客户端拜候的静态资源(如:HTML文档、图片文件和声响文件等)放在缓存中,当客户再 
  次拜候有关静态资源时,Tomcat只需直接从缓存中读取相关数据,无须反复读取文件系统中的文件。该属 
  性的默认值为true. 
  6>cacheMaxSize:设定静态资源的缓存的最大容量,以K为单元。要是,要是该属性为100,表示100K,默认 
  为10240(即10M)。 
  7>workDir:指定web应用的工作目次。Tomcat在运行时会把与这个web应用相关的临应试文章件放在此目次下。 
  8>uppackWar:要是此项设为true,表示将把web应用的war文件睁开为开放目次布局后再运行。要是设为 
  false,则直接运行war文件。该属性的默认值为true。 
  同志们,使用tomcat6.0的注意了啊。当你使用我的方法设置tomcat后,你的myeclipse报如下错误时,不要惊慌,这是正确的,且听我解释。 
  console报错: 
  警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ' debug' to '0' did not find a matching property. 这是由于你使用的是tomcat6.0,由于它路程经过过程其他途径对debug="0"这个属性进行了使成为事实,所以这搭不能再有此属性。你只要将它去掉,就能够没事了启动了。 也就是说去掉debug="0“,万事OK,呵呵。 


(转)

-------------------------------------------------------------

针对需要重新启动tomcat的服务,重新启动方式为:

安装版:tomcat/bin/shotdown.bat      关闭tomcat服务

          tomcat/bin/startup.bat         开启tomcat服务

或者-->我的电脑-->管理-->服务和应用程序/服务-->找到Apache Tomcat重启

posted on 2016-06-19 21:03 youngturk 阅读(266) 评论(0)  编辑  收藏 所属分类: 笔试题


只有注册用户登录后才能发表评论。


网站导航:
 
<2016年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

公告

this year :
1 jQuery
2 freemarker
3 框架结构
4 口语英语

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

EJB学习

Flex学习

learn English

oracle

spring MVC web service

SQL

Struts

生活保健

解析文件

搜索

最新评论

阅读排行榜

评论排行榜