понедельник, 31 января 2011 г.

Spring MVC: No mapping found for HTTP request with URI

Тернист и сложен путь начинающего Java разработчика. Но от этого он еще более интересен! Итак, вы настроили свое приложении на Spring MVC, вводите в браузере "http://localhost:8080/spring-security/help" и получаете ошибку "No mapping found for HTTP request with URI [/spring-security/WEB-INF/views/help.jsp] in DispatcherServlet with name 'mvc-dispatcher'". В чем проблема? Ведь все правильно настроено! Проблема в том, что Spring правильно распознает ваш запрос и перенаправляет его по другому адресу (например, добавляя "WEB-INF/views/" + ... + ".jsp"). Контейнер ищет подходящий сервлет для обработки запроса и находит его - ваше Spring MVC приложение! Т.е. происходит зацикливание. Существует множество решений данной проблемы (обсуждение идет про статический контент, но данную ситуацию, думаю, можно исправить указанными методами), но мне показались они сложными и я продолжил поиск и нашел, то что искал! Повторю описание решения в данной заметке: в файле web.xml вместо
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
используйте
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

воскресенье, 30 января 2011 г.

Логирование в Java - SLF4J и Log4J

В последнее время я часто убеждаюсь, что иногда лучше потратить час времени на изучение теории, чем биться с проблемой на практике. Итак, разбираемся с логированием в Java. Я не буду писать очередную статью по данному поводу - все уже до меня сказали. Просто дам несколько интересных ссылок, которые мне помогли: