Подтвердить что ты не робот

Как автоматически перейти к "моему веб-приложению" из контекста "root (/)" в JBoss?

Я использую JBoss 6.0.

Я развернул свое веб-приложение: myApp.ear в веб-контексте: "/test". Поэтому в url-браузере, если я нахожу " http://localhost:8080/test/", я получаю свою страницу входа (myLogin.jsp).

Поскольку моя WAR существует внутри EAR файла, я указал корень контекста в файле application.xml, используя элемент контекстно-корневой внутри веб-модуля - то есть

<module>
    <web>
        <web-uri>myWeb.war</web-uri>
        <context-root>/test</context-root>
    </web>
</module>

Мой вопрос: как автоматически настроить пользователя на мое веб-приложение из "корневого контекста"?

Я имею в виду, если пользовательские типы " http://localhost:8080/", я ожидал бы, что моя страница входа в веб-приложение будет load (вместо страницы ROOT.war index.html по умолчанию JBoss).

Я удалил существующий index.html из {JBOSS}\server\default\deploy\ROOT.war и создал там login.jsp. Теперь я вижу, что "login.jsp" вызывается при вводе http://localhost:8080/. Но я не могу перенаправить запрос пользователя на мою страницу входа в веб-приложение.

В этом login.jsp я попытался:   <jsp:forward page="/test" />, но я получаю сообщение об ошибке: "HTTP Status 404 -/test".

Если я вызываю как <jsp:forward page="/test/myLogin.jsp" />, я все равно получаю ту же ошибку 404.

Может ли кто-нибудь предложить, как добиться автоматического перенаправления моего веб-приложения из корневого контекста?

4b9b3361

Ответ 1

Вам нужно сохранить index.html в папке развертывания по умолчанию и переслать запрос на ваш веб-модуль.

Например, держите следующую строку только в index.html

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/test/"/> 

Ответ 2

Ответ от Senthil работает хорошо, но пользователь может видеть фактическое перенаправление, выполняемое браузером (страница мигает). Переадресацию можно выполнить также с помощью rewrite [1, 2] сервера JBoss, который поддерживает HTTP-переадресацию с 30-кратным кодом (не мигает).

Вы можете напрямую добавить ссылку на приложение (web.xml, jboss-web.xml) и указать правила переадресации в rewrite.properties - здесь не показано.

Или вы можете изменить конфигурацию сервера самостоятельно, не касаясь оригинального приложения. Я считаю это решение удобным, потому что приложение остается нетронутым.

Случай использования. Мы используем это для EJBCA развертывания (а не нашего приложения), он устанавливает его в корневом контексте в /ejbca. Мы хотим сохранить процесс развертывания по умолчанию, предоставляемый упакованным ant script, в то же время мы хотели бы добавить перенаправление от / в /ejbca как своего рода значение по умолчанию для удобства пользователя. Если пользователь хочет изменить его, это просто путем изменения standalone.xml без необходимости повторного развертывания всего приложения.

Изменить standalone.xml:

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
    <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
        <rewrite pattern="^/$" substitution="/test" flags="L,QSA,R" />
    </virtual-server>
</subsystem>