天天看点

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

在tomcat的server.xml的host标签中加入

<Context path="/Velocity" docBase="D:\workSpace\Velocity\webRoot" reloadable="true"/>

path:指定访问该Web应用的URL入口。 

docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。 

reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

方法2(个人觉得这种方法比较好):在tomcat的conf\Catalina\localhost目录中新建一个Velocity.xml文件,内容为

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/Velocity" docBase="D:\workSpace\Velocity\webRoot" reloadable="true"/>

我的环境:

    eclipse 版本 3.4   , 默认设置为 自动编译  即(Project -> Biuld automatically 打钩)

    tomcat 版本 6.0    , server.xml 设置如下:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
      <Context docBase="CPCWeb" path="/CPCWeb" reloadable="true" source="org.eclipse.jst.j2ee.server:CPCWeb"/></Host>      

大家可以看到 Host 标签和Context标签中 

autoDeploy="true"    ----  自动部署

reloadable="true"     ----  自动加载

现在我把这两个值都设置为false,即修改后的配置如下:

<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
      <Context docBase="CPCWeb" path="/CPCWeb" reloadable="false" source="org.eclipse.jst.j2ee.server:CPCWeb"/></Host>      

重启Tomcat ,支持类的自动加载了,tomcat 不重启了,控制台打印少了,世界终于安静了...