2

我在 Tomcat 8.0.20 上运行以下配置:

C:\tomcat
   conf
     server.xml
     context.xml
   webapps
     app
     app2
   ......
C:\external
     app3
        web
     app4
        web
     app5
        web

在 context.xml 我有<Context crossContext="true"> .... </Context>

在 server.xml 中:

 ..........
 <Host name="host.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context 
      cachingAllowed="false"
      docBase="C:\external\app3\web" 
      path="" 
      crossContext="true"
      reloadable="true" />

    <Context 
      cachingAllowed="false"
      crossContext="true"
      docBase="C:\external\app4\web" 
      path="/app4"
      reloadable="true" />

    <Context 
      cachingAllowed="false"
      crossContext="true"
      docBase="C:\external\app5\web" 
      path="/app5"
      reloadable="true" />
 </Host>

获取 的/app/app2/app5作品/app4中获取上下文:

request.getServletContext().getContext("/app")不为空。

但是,请求的上下文/app3(带有上下文路径/)。

知道为什么getContext("/")为空吗?

4

1 回答 1

2

事实证明,这是 8.0.15 版本之后 tomcat 中的回归

在这里提交了错误报告

将 tomcat 恢复到 8.0.15,它现在正在工作....

于 2015-03-21T18:23:19.407 回答