Tomcat的appBase和docBase解析

tomcat配置文件server.xml中,Host标签中可以配置Context标签。我们在实际项目使用中,配置不对,会遇到服务重复部署的问题。原因是tomcat默认解压webapps的war包并部署。如果我们通过配置Context,指定的war包也在webapps目录下,那就有可能会存在重复拉起服务的问题。而对Context的配置,主要涉及到appBase和docBase这两个参数的使用。

现说明一下参数的使用。
为了解决重复拉起问题,我们只需要把拉起的服务的war包,不放到默认的webapps目录下,然后通过使用docBase参数指定地址就可以,如下所示:

      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
			<Context path="/" docBase="../wars/demo.war" reloadable="true" crossContext="true" />
      </Host>

appBase是默认情况下,是相对于tomcat根目录的。这个参数也会决定解压war到的目录。这里appBase等于webapps,war包会被解压到webapps的目录下,解压具体路径,再根据Context标签里面的path路径决定,有两个情况,一种情况是path有值并且不是/,比如说下面这种情况

      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
			<Context path="/add" docBase="../wars/demo.war" reloadable="true" crossContext="true" />
      </Host>

这种情况,war包会被解压到目录webapps/add。
另外一种情况是/,这种情况下会被解压到webapps/ROOT目录。

如果appBase="",则解压到tomcat根目录下的path指定的路径下,path等于/的情况,就解压到tomcat根目录下的ROOT目录下。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值