zoukankan      html  css  js  c++  java
  • Tomcat增加Context配置导致启动的时候项目加载两次问题解决方案

    1. 出现场景

    eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/
    现在需要改成这样访问http://localhost
    修改tomcat的server.xml文件,增加如下配置<Context path="" docBase="myapp" reloadable="false"/>,修改后host部分如下:

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="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 "%r" %s %b" />
    
           <Context path="" docBase="myapp" reloadable="false"/>
    
          </Host>
    

      

    2. 问题原因

    虚拟目录引起的问题,我们在Host标签里配置了appBase="webapps",tomcat加载一次应用。在里配置了一次docBase,tomcat又去加载一次应用。

    3. 解决办法

    将appBase="webapps"置为appBase="",docBase="myapp"置为docBase="webapps/myapp"。配置如下:

    <Host name="localhost"  appBase=""
                unpackWARs="true" autoDeploy="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 "%r" %s %b" />
    
           <Context path="" docBase="webapps/myapp" reloadable="false"/>
    
          </Host>
    

      说明:如果你的项目中的链接或者图片写的都是绝对路径的话,那么带有项目名称的绝对路径是不可以使用的。

    eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/
    现在需要改成这样访问http://localhost
    修改tomcat的server.xml文件,增加如下配置<Context path="" docBase="myapp" reloadable="false"/>,修改后host部分如下:

  • 相关阅读:
    支持向量机(Support Vector Machine / SVM)
    k-近邻算法(KNN)
    STM32端口模式配置——上拉、下拉、模拟、浮空输入;推挽、开漏、复用输出
    Catia V5-6R2017破解版|Catia V5-6R2017下载|安装破解步骤
    在远方
    快递 10 年,逆袭为王
    “四通一达”本一家,这家人是如何“承包”中国快递半壁江山的?
    JavaScript中的内存释放
    常见的几种JavaScript内存泄露
    span(行级元素)在不定高的div(块级元素)中垂直居中的方法
  • 原文地址:https://www.cnblogs.com/taoge007/p/6847069.html
Copyright © 2011-2022 走看看