hitl 发表于 2017-2-2 06:32:08

Tomcat 7源码学习笔记 -5 web app自动reload

  一个运行中的web app,如果修改了其中的一部分代码,然后更新了class文件或者其它文件,那么在不重新启动tomcat的情况下,如何让tomcat自动载入最新的代码呢?配置方式有几种:
  假设web应用名为test,engine名为Catalina,host名为localhost
  1.可以在test/META-INF目录下面放置一个context.xml文件,内容如下:
  <Context reloadable="true"/>
  2.也可以在conf/Catalina/localhost目录下放置一个test.xml文件,内容如下:
    <Context reloadable="true"/>
  3.如果想让localhost下的所有web应用都自动reload,那么可以在conf/Catalina/localhost目录下放置一个context.xml.default文件,内容如下:
  <Context reloadable="true"/>
  4.如果希望tomcat下的所有web应用都自动reload,还有一种方法。方法如下:
  随便修改一下test/WEB-INF/web.xml文件,比如加个空行,然后保存,这样tomcat会自动监测到web.xml被修改了,然后就重新加载test应用。这个自动监测的配置属于tomcat的默认配置,配置信息如下:
  conf/context.xml文件中
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  这个文件中的配置适用于所有的web应用,不过这种方法有些局限性,就是WatchedResource中只能指定一个具体的文件,不支持WEB-INF/*等模式匹配,所以无法做到监测整个web应用。
  5.还可以修改server.xml文件,在<host>下面配置<Context>信息:
  <Context path="/test" docBase="test" reloadable="true"/>
  不过这种方法不建议使用,因为修改server.xml文件需要重启tomcat,而且不便于管理,因为server.xml里面的配置信息比较重要,所以最好把web应用自身的配置信息放在单独的文件中管理比较好。
页: [1]
查看完整版本: Tomcat 7源码学习笔记 -5 web app自动reload