在tomcat中获取另一个webapp的上下文

时间:2015-03-16 16:57:53

标签: java tomcat web-applications tomcat8 cross-context

我在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("/")为空?

1 个答案:

答案 0 :(得分:2)

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

提交错误报告here

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