Кажется, что причина конфликта заключается в том, что по умолчанию корень контекста "/" должен обрабатываться org.apache.catalina.servlets.DefaultServlet. Этот сервлет предназначен для обработки запросов на статические ресурсы.
Если вы решите исключить его с помощью своего собственного сервлета с целью обработки динамических запросов, этот сервлет верхнего уровня также должен выполнять любые задачи, выполняемые оригинальным обработчиком catalina "DefaultServlet".
Если вы читаете документы Tomcat, они упоминают, что True Apache (httpd) лучше, чем Apache Tomcat, для обработки статического содержимого, поскольку он специально создан для этого. Я предполагаю, что Tomcat по умолчанию использует org.apache.catalina.servlets.DefaultServlet для обработки статических запросов. Поскольку все это заключено в JVM, а Tomcat предназначен для использования в качестве контейнера Servlet / JSP, они, вероятно, не написали этот класс как супероптимизированный обработчик статического содержимого. Это здесь. Это делает работу. Достаточно хорошо.
Но это то, что обрабатывает статический контент, и он живет в "/". Так что, если вы положите туда что-нибудь еще, и эта штука не будет обрабатывать статические запросы, WHOOPS, туда уйдут ваши статические ресурсы.
Я искал один и тот же ответ все выше и ниже, и ответ, который я получаю повсюду: «Если ты не хочешь, чтобы это делалось, не делай этого».
Короче говоря, ваша конфигурация заменяет обработчик статических ресурсов по умолчанию чем-то, что вообще не является обработчиком статических ресурсов. Вам нужно будет попробовать другую конфигурацию, чтобы получить результаты, которые вы ищете (как и я).