WildFly: как разделить веб-приложения? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть 2 веб-интерфейса приложения JEE на WildFly 15. Оба имеют разные сертификаты SSL.И у них также есть различные методы / URL REST.И клиент не должен иметь возможность видеть / получать доступ к соответствующим другим методам.

Наличие разных SSL-сертификатов на разных портах путем добавления дополнительного прослушивателя HTTPS вообще не было проблемой.Но сейчас я борюсь с разделением веб-приложений.

Вы можете использовать разные виртуальные хосты, определив их в jboss-web.xml, который поставляется вместе с вашим веб-приложением.Но вы не можете определить прослушиватели HTTP и HTTPS на виртуальном хосте в конфигурации WildFly (в моем случае специально в standalone-full.xml).Вы должны добавить другой (веб) сервер для возможности сделать это.Это тоже пока работает.

Итак, я определил виртуальный хост моего 2-го (веб) сервера в jboss-web.xml.Но я не могу развернуть веб-приложение, так как всегда получаю сообщение об ошибке, что WildFly не может найти виртуальный сервер:

2019-02-12 15:06:07,930 ERROR [org.jboss.as.controller.management-operation] (External Management Request Threads -- 1) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "myapp-ear-1.0.4.ear")]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.undertow.server.default-server.myapp-host"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.subunit.\"myapp-ear-1.0.4.ear\".\"myapp-web-1.0.4.war\".undertow-deployment.UndertowDeploymentInfoService is missing [jboss.undertow.server.default-server.myapp-host]",
        "jboss.deployment.subunit.\"myapp-ear-1.0.4.ear\".\"myapp-web-1.0.4.war\".undertow-deployment is missing [jboss.undertow.server.default-server.myapp-host]"
    ]
}
2019-02-12 15:06:07,931 ERROR [org.jboss.as.server] (External Management Request Threads -- 1) WFLYSRV0021: Deploy of deployment "myapp-ear-1.0.4.ear" was rolled back with the following failure message: 
{
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.undertow.server.default-server.myapp-host"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.subunit.\"myapp-ear-1.0.4.ear\".\"myapp-web-1.0.4.war\".undertow-deployment.UndertowDeploymentInfoService is missing [jboss.undertow.server.default-server.myapp-host]",
        "jboss.deployment.subunit.\"myapp-ear-1.0.4.ear\".\"myapp-web-1.0.4.war\".undertow-deployment is missing [jboss.undertow.server.default-server.myapp-host]"
    ]
}

Конечно, в "default-server" нет "myapp-host"" веб сервер.Именно в «myapp-сервере».Но я не могу определить это в jboss-web.xml:

<jboss-web>
    <virtual-host>myapp-host</virtual-host>
</jboss-web>

У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ:

Как указал НикосПараскевопулос: есть дополнительный параметр.Таким образом, все это (jboss-web.xml) должно выглядеть так:

<jboss-web>
    <server-instance>myapp-server</server-instance>
    <virtual-host>myapp-host</virtual-host>
</jboss-web>

Я проверил его, и он отлично работает.Спасибо НикосПараскевопоулос.

1 Ответ

0 голосов
/ 13 февраля 2019

Из документации JBoss / WildFly есть элемент <server-instance>, который:

[...] указывает, к какой конфигурации экземпляра сервера относится это приложение

Итак, измените jboss-web.xml на:

<jboss-web>
    <virtual-host>myapp-host</virtual-host>
    <server-instance>myapp-server</server-instance>
</jboss-web>

Кстати, XSD и DTD для ВСЕХ XML-файлов конфигурации WildFly можно найти в дистрибутиве WildFly в разделе docs / schema.Они содержат достаточно документации, я считаю их очень полезными.

...