Tomcat启动加载两次项目问题

1、appBase和docBase

appBase是指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于的相对目录.如果没有此项,默认为/webapps。
docBase是指定Web应用的文件路径.可以给定绝对路径,也可以给定相对于Host的appBase属性的相对路径. 如果Web应用采用开放目录结构,那就指定Web应用的根目录;如果Web应用是个WAR文件,那就指定WAR文件的路径。

2、出现场景

server.xml如下

  1. ```
  2. <Host name="localhost" appBase="webapps" #appBase指定虚拟主机的目录为webapps
  3. unpackWARs="true" autoDeploy="true">
  4. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  5. prefix="localhost_access_log." suffix=".txt"
  6. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  7. <Context path="" docBase="myapp" reloadable="false"/>
  8. </Host>

此时每次启动tomcat观察日志都会发现应用加载了两次,什么原因呢?

3、问题原因

虚拟目录引起的问题,我们在Host标签里配置了appBase=”webapps”,tomcat加载一次应用。在里配置了一次docBase,tomcat又去加载一次应用。

4、解决办法

将appBase=”webapps”置为appBase=”“,docBase=”myapp”置为docBase=”webapps/myapp”。配置如下:

  1. ```
  2. <Host name="localhost" appBase=""
  3. unpackWARs="true" autoDeploy="true">
  4. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  5. prefix="localhost_access_log." suffix=".txt"
  6. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  7. <Context path="" docBase="webapps/myapp" reloadable="false"/>
  8. </Host>
2
未经许可,不得转载,否则将受到作者追究,博主联系方式见首页右上角

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论
取消评论
代码 贴图 加粗 链接 删除线 签到