在Tomcat5中提出了Context descriptor这个概念,且为其配置了一个专有目录,而不像Tomcat4那样大杂烩一般地放置在$appBase目录下。
Context descriptor是一个只包含Context元素的xml格式的部署文件,其中Context元素与server.xml中的Context元素配置相同。
对于一个给定的主机,Context descriptor放置在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下面。
Tomcat5默认安装时,在$CATALINA_HOME/conf/Catalina/localhost目录中有admin.xml和manager.xml,是两个管理工具的部署描述符文件。而这两个文件在Tomcat4中是放置在$CATALINA_HOME/webapps目录下面的。
使用方法:
在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下新建xxx.xml文档
在xxx.xml文档中配置如下
<Context docBase="${catalina.home}/server/webapps/host-manager" privileged="true" antiResourceLocking="false" antiJARLocking="false"> </Context>
注:docBase也可以设置为[eclipse的workplace]/[project]/webroot
静态部署是指在Tomcat运行之前就把相关的Web应用程序放置到合适的目录,在Tomcat启动的时候自动来部署这些应用程序。
如果”deployOnStartup”属性值为true,那么在Tomcat启动时,在$appBase目录下的web应用程序将被自动部署。部署的过程如下:
Tomcat5对于静态方式的部署的增强主要就是:
在Tomcat4中,即使WAR文件已更新也无法被重新部署,仍然会使用旧的扩展目录方式的Web应用程序,除非你自己手动删除目录,而且还要重启Tomcat。
动态部署是指在Tomcat已经运行以后在不重启服务器的情况下部署应用程序的方式。
如果虚拟主机的”autoDeploy”属性值为true,则主机会在需要的时候试图去部署和更新应用程序。这是由虚拟主机在后台运行的一个负责自动加载的处理线程来完成的,它的工作流程如下:
看来Tomcat5在动态部署上花费了不少功夫,其中的亮点主要就是如果我们修改了web.xml、server.xml配置文件,增加了上下文描述符文件,动态更新了War文件时都可以实现应用程序的自动部署和更新,而不用重新启动Tomcat服务器,在Tomcat4中都是必须重新启动服务器的,这是一个非常喜人的变化。