专栏首页后端开发随笔tomcat部署应用时设置context path为空的上下文路径问题

tomcat部署应用时设置context path为空的上下文路径问题

在server.xml中添加<Context>元素,配置如下:

<Context docBase="app" path="" reloadable="false" />

在<Context>配置中包含如下信息: 1. 配置docBase值为:docBase="app"或者docBase="app.war"; 2. path为空,表示app为tomcat默认应用; 同时,将app.war部署在CATALINA_HOME/webapps/路径下。

1.如果在部署app时删除了CATALINA_HOME/webapps/路径下的ROOT目录(即删除tomcat默认应用), 那么在tomcat启动时,会首先在CATALINA_HOME/webapps/路径下创建名称为ROOT的目录,然后将文件app.war中的内容拷贝到ROOT目录下,开始部署ROOT应用程序。 接下来才会解压app.war,再部署app应用。 从tomcat的启动日志可以很容易知道,在这种情况下app应用会被加载2次,一次是部署ROOT时加载的,另一次是部署app本身加载的。 因此,访问应用可以带应用上下文路径,也可以不用带上下文路径,即:http://host:port/xxx或者http://host:port/app/xxx。

2.如果在部署app时不删除CATALINA_HOME/webapps/路径下的ROOT目录,即已经存在默认应用程序。 此时在tomcat启动时,会先部署ROOT默认应用(注意:已经存在ROOT应用,不再会拷贝app.war文件内容到ROOT下)。然后解压app.war,部署app应用。显然,app应用只被部署一次! 因此,在这种情况下,即便配置了<Context>元素的path为空,但是访问app应用时还是必须携带应用上下文路径,即:http://host:port/app/xxx。

实际上,tomcat部署应用程序的顺序是这样的(tomcat启动日志): 1.最先部署CATALINA_HOME/webapps/路径下的ROOT应用,该应用为tomcat的默认应用程序,访问时不用带应用上下文路径,即:http://host:port/xxx。 2.然后再按照字母顺序升序依次部署其他应用程序,如:appA,appB等等。

【参考】 http://stackoverflow.com/questions/7276989/how-to-set-the-context-path-of-a-web-application-in-tomcat-7-0 How to set the context path of a web application in Tomcat 7.0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • WebSocket协议入门介绍

    WebSocket是基于TCP的应用层协议,用于在C/S架构的应用中实现双向通信,关于WebSocket协议的详细规范和定义参见rfc6455。 需要特别注意...

    2Simple
  • 记一次解决非法参数DDoS攻击的实践

    线上项目突然遭到大量的非法参数攻击,由于历史问题,之前的代码从未对请求参数进行校验。 导致大量请求落到了数据访问层,给应用服务器和数据库都带来了很大压力。 ...

    2Simple
  • 细说shiro之二:组件架构

    Shiro主要组件包括:Subject,SecurityManager,Authenticator,Authorizer,SessionManager,Cach...

    2Simple
  • “玄关”与“开机页”

    本文跨界思考室内设计中的“玄关”空间与手机APP“开机页”之间的异同点,思考互相借鉴的可能。 ——这是一篇符合本公众号“设计Mix科技”出发点的文章。 1、...

    mixlab
  • 分享一例脚本发版和tomcat重启脚本

    线上有个网站业务部署在tomcat上,由于频繁上线修改,需要经常启动tomcat。 tomcat服务自带的bin下没有重启脚本,下面分享一例脚本发版和tomca...

    洗尽了浮华
  • express:node throwing error on mongodb

    与此类似node throwing error on mongodb,一直报Db.open那里出错,查源代码,发现应该是有err参数传入,因为之前从来没接触过m...

    meteoric
  • Springsecurity之jsp中url方式控制权限

        如List-2.1所示,单独定义个DefaultWebInvocationPrivilegeEvaluator的bean就可以了,将intercepto...

    克虏伯
  • Nginx的405 not allowed错误解决

    静态server下的location加入error_page 405 =200 $uri;

    用户7657330
  • 三分钟看懂机器学习中应该注意哪些问题?

    本文简单谈谈机器学习中应该注意的一些问题。仅供大家参考学习和讨论。 1. 特征预处理 机器学习中的输入数据必须是数值类型的,但是现实问题中不免会有一些类别类型的...

    CDA数据分析师
  • 记腾讯20周年司庆祝福魔术项目的设计经历

    这次腾讯20周年庆生活动预热很久,不甘做一个旁观者,我也尽我所长有所参与。在庆生当天总办link time开场视频和微视庆生宣传活动中的楼梯间循环展示,...

    magic2728

扫码关注云+社区

领取腾讯云代金券