博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译Java类后不重启Tomcat有两种方式:热部署、热加载
阅读量:5149 次
发布时间:2019-06-13

本文共 2428 字,大约阅读时间需要 8 分钟。

    不重启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,呵呵。
    ======================================================================
    还有一种方式:使用第三方工具
    http://www.zeroturnaround.com/jrebel/
    1、解压缩包
    2、执行java -jar jrebel-setup.jar
    3、会弹出一个安装界面(自己看,很好懂)
    4、在MyEclipse中配置,找到服务器(如tomcat)的配置页面,在tomcat的jdk配置页面的Optional Java VM arguments输入框中加如下参数:
    -noverify -javaagent:D:\dev\JRebel\jrebel.jar -Drebel.dirs=D:\dev\apache-tomcat-6.0.20\webapps\nmr
    第一个路径是jar包的绝对路径,第二个地址是说想让哪个目录下的类更改后不重启服务。
    如果Optional Java VM arguments输入框中有其他参数,用空格隔开。
    5、发布项目,就能在控制台看到效果。
    类就可以改变之后不用重启tomcat。
    目前流行的服务器都支持。详细看官方网站。
    下载的压缩包文件名为jrebel-setup.zip (7.8 MB)
    可参考:http://japankn.javaeye.com/blog/577931

转载于:https://www.cnblogs.com/jefflau/archive/2012/06/01/3244351.html

你可能感兴趣的文章
python网络篇【第十一篇】队列、线程池
查看>>
ios view的frame和bounds之区别(位置和大小)
查看>>
switzerland, we're coming
查看>>
基于OSGi的企业级快速开发平台(开源)
查看>>
robotframework如何设计web页面的自动化---如何上传图片
查看>>
Lae程序员小漫画(二),仅供一乐
查看>>
阶乘末尾零数
查看>>
E: Sub-process /usr/bin/dpkg returned an error code (1) 出错解决方案 ...
查看>>
python3新特性函数注释Function Annotations用法分析
查看>>
HBase 的 HA (高可用性)
查看>>
使用apache+ glassfish实现负载均衡和集群
查看>>
遇到的几个算法题
查看>>
vue2.0.js
查看>>
ubuntu_deb安装命令
查看>>
省市县三级连动
查看>>
wp7音乐播放器
查看>>
oracle中的loop与while循环
查看>>
python班级群中的问题记录-2016.12.22
查看>>
在shell脚本中调用sqlplus 分类: H2_ORACLE ...
查看>>
598. Range Addition II 范围相加
查看>>