Я пытаюсь обновить существующее веб-приложение Java с Tomcat 6 (6.0.32) до Tomcat 7 (7.0.23) .Он построен с использованием Spring MVC и Tiles.
Большая часть приложения прекрасно работает в Tomcat 7 без каких-либо изменений в коде или конфигурации.Единственная проблема заключается в том, что домашняя страница не работает: Tomcat 7 отображает нашу стандартную страницу 404 вместо домашней страницы.Другие страницы на сайте выглядят нормально.
Журналы показывают, что проблема в том, что что-то - предположительно Tomcat - добавляет index.html к запросу домашней страницы.Другими словами, когда я перехожу на URL http://localhost/, веб-приложение обрабатывает его как http://localhost/index.html. Это не работает, потому что у нас нет index.html, домашняя страница генерируется динамическии предназначен для обработки Spring MVC.
Некоторые журналы иллюстрируют проблему.Вот первые несколько строк журнала отладки при попадании на домашнюю страницу:
Tomcat 6
17:42:00.768 [TP-Processor3] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/'; against '/ws/**'
17:42:00.769 [TP-Processor3] DEBUG o.s.security.web.FilterChainProxy - / at position 1 of 11 in additional filter chain; firing Filter: 'ChannelProcessingFilter'
17:42:00.769 [TP-Processor3] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/'; against '/login'
17:42:00.769 [TP-Processor3] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/'; against '/login-process'
17:42:00.769 [TP-Processor3] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/'; against '/'
17:42:00.769 [TP-Processor3] DEBUG o.s.s.w.a.c.ChannelProcessingFilter - Request: FilterInvocation: URL: /; ConfigAttributes: [REQUIRES_INSECURE_CHANNEL]
17:42:00.770 [TP-Processor3] DEBUG o.s.security.web.FilterChainProxy - / at position 2 of 11 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
Tomcat 7
17:39:47.462 [ajp-bio-18009-exec-2] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/index.html'; against '/ws/**'
17:39:47.462 [ajp-bio-18009-exec-2] DEBUG o.s.security.web.FilterChainProxy - /index.html at position 1 of 11 in additional filter chain; firing Filter: 'ChannelProcessingFilter'
17:39:47.462 [ajp-bio-18009-exec-2] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/index.html'; against '/login'
17:39:47.462 [ajp-bio-18009-exec-2] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/index.html'; against '/login-process'
17:39:47.462 [ajp-bio-18009-exec-2] DEBUG o.s.s.web.util.AntPathRequestMatcher - Checking match of request : '/index.html'; against '/'
17:39:47.462 [ajp-bio-18009-exec-2] DEBUG o.s.security.web.FilterChainProxy - /index.html at position 2 of 11 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
Насколько я могу судить, Tomcat 6 и Tomcat 7 настроены одинаково, что позволяет вносить изменения в некоторые конфигурации по умолчанию между версиями.Я дважды проверил, что <welcome-file-list>
одинаков в каждом.
Так что может быть причиной добавления index.html к URL-адресу в Tomcat 7?