tomcat 热部署和热加载
1.热部署:
原定义:tomcat处于运行状态时,能够监控webapps目录下的文件,如果有新的web应用被加入到此目录下,会被自动发布这个web项目.
2.实现方式: 将 Host标签中的autoPlay的值设置为true
3.配置文件:conf/server.xml中:
<Host name="localhost" appBase="webapps unpackWARs="true" autoDeploy="true">
参数解释:
name属性指定虚拟主机的主机名,一个Engine中至少有一个Host组件,Host的name属性与Engine组件的defaultHost属性相匹配。
appBase属性:代表项目存放的目录文件名
unpackWARs属性:指定了是否将代表Web应用的WAR文件解压,如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用
autoDeploy属性:和项目热部署有关。
4.热加载(必须在debuge模式下才会起作用):
当Context标签的reloadable属性的值为true时,就实现了热加载。
定义:tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
前提:只有在debug模式下,该属性才起作用,普通模式下,就算你reloadable="true",也不会生效(class文件不会被更新,tomcat不会重启)。
实例:
<Context path="/mobile/cahshier" docBase="/usr/local/tomcat/webapps/mobile/cahshier" autodeploy="true" reloadable="true"/>
debuge模式启动tomcat:
在catalina.sh中的首行添加: 注意:端口一定要是8000,其他的话试了几次连不上
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"