Проблема миграции Spring Web App с tomcat 5.5 на tomcat 6.0 - PullRequest
2 голосов
/ 08 февраля 2009

У меня есть весеннее веб-приложение, которое нормально работает на tomcat 5.5. Я попытался развернуть то же веб-приложение в контейнере Tomcat 6 и столкнулся с некоторыми проблемами.

Основные две проблемы, с которыми я столкнулся, касаются настройки контейнера для jstl и правильной работы логина безопасности Spring.

Я считаю, что я решил проблему с конфигурацией jstl, включив библиотеку jstl-1.2.jar из здесь в каталог $ CATALINA_HOME / lib (хотя на самом деле странно, что это так трудно понять, как заставить это работать).

Основная проблема сейчас заключается в том, что когда я пытаюсь войти в систему, используя аутентификацию на основе форм, я получаю ошибку HTTP 404, когда форма входа в систему передается в «j_spring_security_check».

Я настроил фильтр в файле web.xml в соответствии с документацией по безопасности Spring, но похоже, что tomcat не вызывает этого, как ожидалось.

Я надеюсь, что кто-то может поделиться своим опытом здесь, поскольку я определенно упускаю что-то фундаментальное в моей конфигурации.

Спасибо.

Обновление: Во время устранения неполадок, основанных на ответах, одна из вещей, которые я в итоге сделал, - это загрузить свежую копию tomcat 6.0.18 и убедиться, что у меня есть файл jstl-1.2.jar в WEB-INF / lib dir. Как ни странно, теперь приложение работает нормально.

Я немного озадачен, но теперь я попытаюсь отследить разницу в двух установках tomcat, которая вызвала ошибку, и выложить дальнейшее обновление здесь.

Спасибо за ответы, ребята.

Ответы [ 3 ]

1 голос
/ 08 февраля 2009

Сложно сказать, что не так, основываясь на предоставленной вами информации.

Общие разделяемые библиотеки, используемые в общей / lib в Tomcat 5.x и более ранних версиях; теперь они находятся в каталоге / lib.

Лично я предпочитаю помещать как можно больше в WEB-INF / lib моих развертываний, потому что я не хочу зависеть от того, настроен ли сервер определенным образом. Если загрузчик классов сможет найти все необходимые JAR-файлы в моем файле WAR, я рад.

И Tomcat 5.x, и 6.x используют JSTL версии 1.2 JAR, так что это распространено. Это место, которое изменилось. Я бы порекомендовал создать ваш WAR-файл с необходимыми JAR-файлами в WEB-INF / lib.

Если вы используете Spring Security, модуль, ранее известный как ACEGI, убедитесь, что у вас также есть эти JAR-файлы.

HTTP 404 - уверен, это не просто проблема развертывания или URL?

Попробуйте отключить защиту Spring, закомментировав ее в файле конфигурации и перезапустив. Ваше приложение должно просто подойти, если все остальное хорошо. Тогда вы будете знать, что вам нужно сосредоточиться. Если нет, вы можете продолжить поиск того, что еще не так.

1 голос
/ 08 февраля 2009

если вы используете maven, вам нужно для jstl:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>runtime</scope>
    </dependency>
0 голосов
/ 09 февраля 2009

Я согласен с Даффимо, недостаточно информации. Попробуйте включить подробное ведение журнала в своем приложении и посмотрите, есть ли что-нибудь очевидное в журналах.

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