я следующая конфигурация работает на 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("/")
не имеет значения?
Вот [пример] (http://stackoverflow.com/questions/11001623/forwarding-requests-between-contexts-in-tomcat) ... вам нужно установить корневой путь. –
Просто изменил '/ app3' на'/', который теперь является корневым путем. Все еще не работает для приложений вне 'webapps'. Есть идеи? –
Просто догадка ... попробуйте использовать относительное сопоставление пути вместо сопоставления dir 'windows' ... I.E. '/ external/app3/web','/external/app4/web' –