tomcat自定义项目访问路径,不使用项目名,而是使用根路径的方法

1,tomcat应用部署时,可以通过在server.xml里配置,也可以在$CATALINA_HOME\conf\Catalina\localhost中添加一个xml文件,用来自定义应用部署。

 

这种部署可以指定应用访问路径。

 

经过测试,发现有以下几种情况

1,server.xml里如下配置

<Context path="/abc" reloadable="false" docBase="/tomcat/apache-tomcat-8.0.50/webapps/ocdc.war" workDir="/tomcat/apps/work">

  </Context>

path表示访问的url路径,docBase指定war包的路径。启动后,发现path生效,http://127.0.0.1:8080/abc已经是程序页面。

webapps下增加了一个ocdc目录,一个abc目录,这说明ocdc.war部署了两次。

 

2,server.xml里如下配置

<Context path="" reloadable="false" docBase="/tomcat/apache-tomcat-8.0.50/webapps/ocdc.war" workDir="/tomcat/apps/work">

</Context>

path为空,docBase指定war包的路径。

启动后,发现path没有生效,访问http://127.0.0.1:8080/显示的是tomcat的欢迎页面。

 

3,server.xml里如下配置

<Context path="" reloadable="false" docBase="/tomcat/apache-tomcat-8.0.50/webapps/ocdc" workDir="/tomcat/apps/work">

</Context>

把webapps下的war包删除,ocdc目录保留,发现没有war包,ocdc路径也自动删除了。

测试时发现Tomcat会定时扫描webapps目录,如果没有对应的war包就会删除项目目录。如果想要不把war包放到目录下,则可以在tomcat停止时把ocdc.war包移出webapps目录,这样ocdc目录不会被删除。如果有war包,则会自动部署项目。

在webapps/ocdc目录不存在的情况下,context配置了这个目录,则tomcat都无法启动,而不只是应用不能启动。

 

4,server.xml里如下配置

 

<Context path="" reloadable="false" docBase="/tomcat/apache-tomcat-8.0.50/webapps/ocdc" workDir="/tomcat/apps/work">

         </Context>

 

 webapps/ocdc目录存在,启动tomcat后,path生效,访问http://127.0.0.1:8080/显示的是应用页面。

 

5,尝试删除ROOT和ocdc目录,

<Context path="" reloadable="false" docBase="/tomcat/apache-tomcat-8.0.50/webapps/ocdc.war" workDir="/tomcat/apps/work">

 

启动tomcat后,

http://197.1.25.30:8080/访问的是应用的页面。

但是查看webapps目录,发现ROOT文件夹和ocdc文件夹里面的内容一样

怀疑是删除了ROOT,又把应用的上下文根设置为/,这样会造成应用在ROOT目录下部署一遍。

 

结论:

应用部署,注册上下文根优先级:

Server.xml设置了context,且项目已经解压>ROOT应用>Server.xml设置了context,项目还是war包,还没有部署

  如果想要让应用抢到ROOT的上下文根,则需要在server.xml里docBase指定的为已经解压的目录,且设置path为空。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值