Развертывание Immutant в WildFly в нескольких контекстах
У меня есть веб-сервер Undertow с Immutant (Clojure), мой main-
выглядит так:
(run
(-> routes/app
wrap-something-app-specific
wrap-params)
(options
{:path "/" :port 8080}))
(run
(-> routes/billing
wrap-something-billing-specific)
(options
{:path "/billing" :port 8081
:worker-threads 4}))
Когда он работает не в WildFly, он работает просто отлично: localhost:8080/ сопоставляет маршруты приложений и localhost:8081/ выставляет счета маршрутам выставления счетов. Однако, когда я развертываю в WildFly как ROOT, я могу заставить работать только один контекст, но не оба одновременно. Я перепробовал все комбинации:path /:port params. Журналы WildFly включают это:
13:07:46,295 INFO [org.projectodd.wunderboss.web.Web] (MSC service thread 1-12) Registered web context /billing
13:07:46,308 INFO [org.projectodd.wunderboss.web.Web] (MSC service thread 1-12) Registered web context /
................
13:07:46,325 INFO [org.wildfly.extension.undertow] (MSC service thread 1-12) JBAS017534: Registered web context: /
Так как же заставить Undertow регистрировать оба контекста?
1 ответ
Это не решение, но оно может дать вам подсказку о том, что происходит. Из документации Immutant / WildFly, похоже, что ваша проблема может возникнуть из-за этого ограничения при развертывании и запуске в WildFly:
При запуске внутри WildFly параметры: host и: port для immutant.web / run автоматически игнорируются, поскольку ваши обработчики монтируются на внутреннем сервере Undertow WildFly, привязанном к любому хосту / порту, для которого он был настроен.