У нас есть веб-приложение со следующими папками / файлами:
somefolder \ view1.jsp view2.jsp
У нас также есть сервлет, настроенный следующим образом:
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>com.etc.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/somefolder/</url-pattern>
</servlet-mapping>
Желаемый результат:
На нашем живом сайте Tomcat 5 вышеприведенное работает нормально.В нашей разработке систем Tomcat 6 вышеприведенное работает нормально.
Но на нашем новом живом сайте Tomcat 6 вышеприведенное не работает.Я получаю 404 ошибки при переходе к http://some.site/somefolder
Если мы переименуем папку somefolder \ в файловой системе в somefolder2 \, то сервлеты будут работать правильно.
Учитывая разницу в поведении различныхПри инсталляции это заставляет меня задуматься, не имеет ли это отношения к конфигурации Tomcat - возможно, Tomcat просматривает физический каталог и обрабатывает его с помощью какого-либо другого сервлета (возможно, сервлета по умолчанию ??), и никогда не дает нашему отображению сервлеташанс.
Кто-нибудь есть какие-либо предложения о том, как атаковать это?
РЕДАКТИРОВАТЬ: Больше информации:
Копаясь немного, я нахожу, что ресурсы JNDI являютсянедоступно для файлов jsp в любой подпапке, но ресурсы JNDI доступны в сервлетах, настроенных в web.xml.Похоже, что Tomcat создает отдельные контексты для каждой подпапки.Возможно ли это, что происходит?
РЕДАКТИРОВАТЬ: Больше информации:
Я добавил строку отладки, которая отображает путь к контексту, и, конечно же, - файлы JSP в подпапке действительноработает в своем собственном контексте.Так как же Tomcat мог неявно создавать контексты для каждой подпапки в веб-приложении?Мы определенно не создаем этот контекст сами.