Tomcat appBase[通俗易懂]

<Hostname=”localhost”appBase=”webapps”unpackWARs=”true”autoDeploy=”true”><Contextpath=”project_name”docBase=”/usr/local/…

大家好,又见面了,我是你们的朋友全栈君。

 <Host name=”localhost”  appBase=”webapps”  unpackWARs=”true” autoDeploy=”true”>
        <Context path=”project_name” docBase=”/usr/local/project_name” debug=”0″ reloadable=”true” crossContext=”true”/>  
        <!– SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html –>
        <!–
        <Valve className=”org.apache.catalina.authenticator.SingleSignOn” />
        –>

        <!– Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern=”common” –>
        <Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”
               prefix=”localhost_access_log.” suffix=”.txt”
               pattern=”%h %l %u %t &quot;%r&quot; %s %b” />

      </Host>

现在我们来讨论下:tomcat 中server.xml文件: Host中 appBase 属性和  context中docBase属性的一些工作原理

1、如果你在Host 中的 appBase目录下配置了 如   appBase –对应的是工程的目录

   1.1、<Host name=”localhost”  appBase=”webapps” unpackWARs=”true” autoDeploy=”true”>   –这个是tomcat的默认配置

           tomcat在启动的时候就会将${tomcat_home}/webapps 目录下的所有子目录当成工程;如:在webapps下有子目录project_a 和project_b  他就会tomcat解析成project_a 和project_b 两个工程

2、如果你想tomcat启动后加载你指定目录的下的工程  同时你指定了工程名 如  docBase  对应的是单独的工程

           <Context path=”project_name” docBase=”/usr/local/project_name” debug=”0″ reloadable=”true” crossContext=”true”/>    

          此时tomcat访问如果你访问  http://IP:port/project_name/就能访问到 /usr/local/project_name 下的资源了;

3、如果appBase指定了同一个目录 同时docBase 指向了appBase指定目录的子目录  

        这时就会出现问题,tomcat会对同一个工程启动2次 

启动过程:1、首先tomcat会对webapps下面的所有工程启动一次  ;2、然后启动docBase目录下的工程,此时如果webapps下面刚好有 project_dir工程的话,就会再次被启动 

此时tomcat下就启动了两个一样的工程了  project_dir 和project_name工程; 你在启动tomcat时 在catalina.out日志文件中就会发现日志重复打印了; 

 

appBase 和docBase以 /  开头说明是绝对目录;

转载于:https://my.oschina.net/u/1414315/blog/812445

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125600.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenCV繪圖的實作-cvCircle,cvEllipse,cvEllipseBox

    OpenCV繪圖的實作-cvCircle,cvEllipse,cvEllipseBox转自:http://www.90in.net/space-4-do-blog-id-10218.htmlOpenCV繪圖的實作-cvCircle,cvEllipse,cvEllipseBox圓的製作,要給他目標圖片,圓心座標,半徑,其他參數等.cvCircle()函式的實作#include&lt;cv.h&gt;#include&lt;highgui.h&gt;IplImag…

    2022年7月19日
    17
  • MP4格式详解_mp4格式有哪些

    MP4格式详解_mp4格式有哪些一、mp4概述MP4文件中的所有数据都装在box(QuickTime中为atom)中,也就是说MP4文件由若干个box组成,每个box有类型和长度,可以将box理解为一个数据对象块。box中可以包含另一个box,这种box称为containerbox。一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(MovieBox),它是一种containerbox,子box包含了媒体的metadata信息;MP4文

    2022年10月16日
    1
  • Pycharm 全局搜索 find in path 失效,不起作用「建议收藏」

    Pycharm 全局搜索 find in path 失效,不起作用「建议收藏」最近写代码发现每个项目下的搜索都不能正常显示所有,原因是因为pycharm缓存过多需要清理,路径:file->InvalidateCaches/Restart重启完后一切正常,又可以愉快的搬砖了>>__<<

    2022年5月31日
    137
  • MODIS数据介绍

    MODIS数据介绍转自:http://blog.sina.com.cn/s/blog_53e9bb570101jv55.html一、Modis数据资源总体介绍&nbsp;1999年2月18日,美国成功地发射了地球观测系统(EOS)的第一颗先进的极地轨道环境遥感卫星Terra。它的主要目标是实现…

    2022年5月7日
    73
  • Laravel渴求式加载(比较容易理解理解load与with关系)

    Laravel渴求式加载(比较容易理解理解load与with关系)

    2021年11月8日
    43
  • 重启nginx命令

    重启nginx命令进入到nginx/sbin目录下面首先需要获取超级管理员的权限1、输入sudosu然后输入密码2、输入sudobash然后输入密码然后输入./nignx-sreloadnginx重启成功

    2022年6月19日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号