2015-03-16 7 views
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("/") не имеет значения?

+0

Вот [пример] (http://stackoverflow.com/questions/11001623/forwarding-requests-between-contexts-in-tomcat) ... вам нужно установить корневой путь. –

+0

Просто изменил '/ app3' на'/', который теперь является корневым путем. Все еще не работает для приложений вне 'webapps'. Есть идеи? –

+0

Просто догадка ... попробуйте использовать относительное сопоставление пути вместо сопоставления dir 'windows' ... I.E. '/ external/app3/web','/external/app4/web' –

ответ

2

Как оказалось, это регресс в котом после версии 8.0.15

Поданный отчет об ошибке here

Откачено TOMCAT в 8.0.15, и теперь он работает ....

Смежные вопросы