Tomcat自动加载更新配置

在开发项目的时候每次修改类都要重新手动启动服务器,这样会浪费很多时间,下边介绍一种方法来修改tomcat的配置,来让tomcat在类更新时自动加载。

在tomcat中可以直接配置自动加载的操作,这样即使不重新启动服务器,类修改后也可以被立刻加载进来。重新加载的实现有许多方法,下边介绍一个在sever.xml中的配置,如下:

1.找到tomacat的安装目录。

2,找到conf文件夹下的server.xml(关于server.xml的介绍可以看这个 http://blog.csdn.net/weinianjie1/article/details/7954425)

3.加上

  
Context属性有:
	className         :指定实现org.apache.catalina.Context接口的类,默认值为org.apache.catalina.core.StandardContext.
          path                   :指定访问该Web应用的URL入口.
          docBase             :指定Web应用的文件路径.可以给定绝对路径,也可以给定相对于Host的appBase属性的相对路径.     如果Web应用采用开放目录结构,那就指定Web应用的根目录;如果Web应用是个WAR文件,那就指定WAR文件的路径.
          reloadable       :如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/class和WEB-INF/lib目录下CLASS文件的改动.如果检测到有calss文件被更新,服务器会自动重新加载Web应用.
          cookies             :指定是否通过Cookie来支持Session,默认为true.
          useNaming         :指定是否支持JNDI,默认为true。
(详细属性解释见上边链接文章)


可以发现,直接在配置虚拟目录的位置上增加一个reloadable属性即可,但是这种情况只适合于开发。因为使用reloadable自动加载后,服务器将始终处于监视状态,一旦发现类修改后就要立刻重新加载,运行的性能是比较低的,所以,当项目真正发布运行时一定要将reloadable的内容设置成false,以提升服务器的运行性能。

另外,当Tomcat重新加载了新的内容之后,所有的操作都将初始化,所有设置过的session属性都将消失。(《java web开发实战经典》)


下边列举网上摘录的其它几种方法:

1.可以在test/META-INF目录下面放置一个context.xml文件,内容如下:


2.也可以在conf/Catalina/localhost目录下放置一个test.xml文件,内容如下:


3.如果想让localhost下的所有web应用都自动reload,那么可以在conf/Catalina/localhost目录下放置一个context.xml.default文件,内容如下:

 
4.如果希望tomcat下的所有web应用都自动reload,还有一种方法。方法如下:
随便修改一下test/WEB-INF/web.xml文件,比如加个空行,然后保存,这样tomcat会自动监测到web.xml被修改了,然后就重新加载test应用。这个自动监测的配置属于tomcat的默认配置,配置信息如下:
conf/context.xml文件中
WEB-INF/web.xml
这个文件中的配置适用于所有的web应用,不过这种方法有些局限性,就是WatchedResource中只能指定一个具体的文件,不支持WEB-INF/*等模式匹配,所以无法做到监测整个web应用。

5.还可以修改server.xml文件,在下面配置信息:

不过这种方法不建议使用,因为修改server.xml文件需要重启tomcat,而且不便于管理,因为server.xml里面的配置信息比较重要,所以最好把web应用自身的配置信息放在单独的文件中管理比较好。

你可能感兴趣的:(javaEE)