Tomcat启动时项目重复加载问题
Tomcat启动时项目重复加载问题
- |
- 浏览:1454
- |
- 更新:2014-04-22 22:03
- |
- 标签:启动
Tomcat配置Host时经常遇到项目加载多次情况,下面是本人总结的各类解决方法。
问题解析
-
appBase与docBase区别
appBase是指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为<CATALINA_HOME>/webapps。
docBase是指定Web应用的文件路径.可以给定绝对路径,也可以给定相对于Host的appBase属性的相对路径. 如果Web应用采用开放目录结构,那就指定Web应用的根目录;如果Web应用是个WAR文件,那就指定WAR文件的路径。
-
tomcat配置文件配置以下参数时
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/apache-tomcat-7.0.53/webapps/Test" debug="0" reloadable="true" />
</Host>
每次启动tomcat,项目会出现被加载两次的问题,配置文件如下图所示:
-
出现上述问题的原因是tomcat加载玩appBase="webapps"之后又去加载docBase,因此造成加载两次项目的问题,修改path参数path="\Test"(项目名称),配置文件内容是
<Host name="localhost" appBase="D:/apache-tomcat-7.0.53"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="\Test" docBase="D:/apache-tomcat-7.0.53/webapps/Test" debug="0" reloadable="true" />
配置文件图显示如下:
-
如果不想修改path="Test"的参数,那么可以修改appBase="webapps"的参数。这样的方式也可以解决当前多次加载问题;appBase的参数指到其他文件目录不能出现在tomcat的webapps目录下,这样也可以访问根目录不用敲项目名称。配置文件内容是
<Host name="localhost" appBase="D:/apache-tomcat-7.0.53"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/apache-tomcat-7.0.53/webapps/Test" debug="0" reloadable="true" />
</Host>
配置文件内容图显示:
-
如果项目不是在MyEclipse中启动而是在linux操作系统中启动,可以把项目搬到其他目录中,前提是不能在webapps目录下,appBase="webapps"参数可有可无,配置文件内容是
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/apache-tomcat-7.0.53/Test" debug="0" reloadable="true" />
</Host>
配置文件内容图显示:
-
本文来源于:http://jingyan.baidu.com/article/48206aeaf9422e216ad6b39b.html