Некоторое время назад мы внесли изменения в наше приложение для поддержки множественного контекста root, используя возможности JBoss , определив его в jboss-web.xm l следующим образом:
WebApp / WEB-INF / JBoss-web.xml:
1
2
3
4
5
6
7
|
<? xml version = "1.0" encoding = "UTF-8" ?> < jboss-web > < context-root >appA</ context-root > < session-config > < session-timeout >10</ session-timeout > </ session-config > </ jboss-web > |
И определение правила перезаписи на виртуальном сервере одной из подсистем в standalone.xml для поддержки другого корневого контекста контекста следующим образом:
JBoss-EAP / автономный / конфигурации / standalone.xml:
1
2
3
4
5
6
7
8
9
|
< subsystem xmlns = "urn:jboss:domain:web:2.2" default-virtual-server = "default-host" native = "false" > < connector name = "http" protocol = "HTTP/1.1" scheme = "http" socket-binding = "http" /> < virtual-server name = "default-host" enable-welcome-root = "true" > < alias name = "localhost" /> < alias name = "example.com" /> < rewrite name = "rule-1" pattern = "^/appB(.*)$" substitution = "/appA$1" flags = "L" /> < rewrite name = "rule-2" pattern = "^/appC(.*)$" substitution = "/appA$1" flags = "L" /> </ virtual-server > </ subsystem > |
Мы были рады пойти на вышеуказанные изменения конфигурации, а сегодня, продвигая ту же конфигурацию на производственные серверы, команда вернулась к нам, что из-за некоторых политик безопасности они не могут включить «root» на уровне «true» в производственной среде, и если мы сделаем это для « ложный » множественный контекст больше не поддерживается.
Затем мы начали искать различные параметры конфигурации , доступные для виртуального сервера, чтобы решить эту проблему, и обнаружили, что нам нужно настроить JBoss с контекстом «/» для поддержки другого контекста (-ов), и поскольку наше приложение имеет контекст «/ appA» там отсутствует контекст «/», и он не может переписать контекст.
Затем у нас есть два немедленных решения — во-первых, переопределить контекст нашего приложения в «/», что требует изменения файла .war, а во-вторых, удалить другое приложение в развертывании JBoss, которое имеет корневой контекст в виде «/», и в тот момент, когда Команда находится в середине рабочего развертывания, мы не можем вносить изменения в файл .war, поэтому мы выбрали второй вариант вместо первого, развернув другое веб-приложение с context-root как «/» .
Ссылка: | Конфигурирование множественного контекстного корня для одного веб-приложения — JBoss от нашего партнера JCG |