Tomcat 6, кажется, создает отдельные контексты для подпапок - PullRequest
0 голосов
/ 27 октября 2010

У нас есть веб-приложение со следующими папками / файлами:

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 мог неявно создавать контексты для каждой подпапки в веб-приложении?Мы определенно не создаем этот контекст сами.

1 Ответ

0 голосов
/ 07 ноября 2010

Решение здесь состояло в том, чтобы оставить путь к веб-приложению в качестве местоположения по умолчанию и указать специальные папки для каждого контекста (в Tomcat 4 вы могли бы сделать это, установив местоположение веб-приложения, но поведение, очевидно, изменилось).

Достаточно легко исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...