Альтернативным решением было бы создание сервлета, который отправляет перенаправление на нужное веб-приложение по умолчанию, и сопоставление этого сервлета со всеми URL-адресами в веб-приложении ROOT.
package com.example.servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class RedirectServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect("/myRootWebapp");
}
}
Добавьте вышеуказанный класс в
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet
.
И добавьте следующее к
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml
:
<servlet>
<display-name>Redirect</display-name>
<servlet-name>Redirect</servlet-name>
<servlet-class>com.example.servlet.RedirectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Redirect</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
И при желании вы можете легко изменить RedirectServlet, чтобы он принимал параметр init, чтобы позволить вам устанавливать веб-приложение по умолчанию без необходимости изменять исходный код.
Я не уверен, что это может иметь какие-либо негативные последствия, но я проверил это, и, похоже, оно работает.