zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    google
    学习Linux第六天
    对比教学大纲
    周 记
    《世界是数字的》读后感
    《我是一只IT小小鸟》读后感
    前端小知识
    JavaScript 执行机制
    执行栈和任务队列
    支付宝前端员工培训手册
  • 原文地址:https://www.cnblogs.com/nuccch/p/6792931.html
Copyright © 2011-2022 走看看