2.2 在Tomcat中的servlet.xml使用Context元素
我们想部署并且在重新部署一个servlet 到Tomcat 中时,并且不用重启Tomcat那该怎么做呢?
这样我们可以在servlet.xml中用作为一个Context元素来部署Servlet
你可以复制一个重新编译过的Servlet类来覆盖一个已经存在的Servlet类 并且调用这个Servlet 从而达到不用重启Tomcat的效果。
-
配置一个Context元素到<tomcat-installation-directory>/conf/server.xml文件中去。Context元素必须嵌套到Host元素中去,这个Host元素代表在你的Web 应用运行下的虚拟主机。
-
在你的Context元素中配置 reloadble 属性 为true。这个标记通知Tomcat去监视在WEB-INF/classes 和 WEB-INF/lib目录下内容是否有任何的变化。如果Tomcat发现其中的变化,Tomcat将自动的重新载入这个web 应用。
这个Context 元素 在server.xml 如下:
<Context className="org.apache.catalina.core.StandardContext"
crossContext="false" reloadable="true"
mapperClass="org.apache.catalina.core.StandardContextMapper"
useNaming="true" debug="0" swallowOutput="false"
privileged="false" displayName="Home Web App"
wrapperClass="org.apache.catalina.core.StandardWrapper"
//配置虚拟目录
docBase="h:home" cookies="true" path="/home"
cachingAllowed="true"
charsetMapperClass="org.apache.catalina.util.CharsetMapper"
>

-
这个path属性描绘了一个应用的上下文路径。这个docBase属性指向这个Web 应用的最高目录(根目录)
在这个配置之下如果复制一个新的Servlet倒以前存在的Servlet 之上那么在Tomcat5.x中将会向后台控制台输出一个信息。来响应动态的Servlet的重载。
如下:
WebappClassLoader: Resource '/WEB-INF/classes/com/mydev/OracleTest.
class' was modified;
Date is now: Sun Feb 02 22:17:41 EST 2007 Was: Sun Feb 02 21:38:52 EST 2007