Входить весной 3.0 под Glassfish? - PullRequest
0 голосов
/ 04 ноября 2010

Я пытаюсь отладить, почему определенные обработчики в одном из моих контроллеров не вызываются Spring AnnotationMethodHandlerAdapter. Я не получаю никаких ошибок в Netbeans, только 404 в браузере. Я попытался установить точку останова в одном из моих работающих контроллеров / обработчиков, а затем прошел по цепочке, чтобы установить точку останова в диспетчере.

Netbeans показывает мне несколько забавных методов тела:

protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
{
  //compiled code
  throw new RuntimeException("Compiled Code");
}

что я подозреваю, вызвано магией AOP. Не пытаясь настроить, я попытался настроить log4j для отслеживания вызовов и отображения любых сообщений, зарегистрированных на уровне отладки из пакета org.springframework.web.servlet.mvc.annotation, но просто путем создания файла log4j.properties и помещения в путь к классу, который я получаю не более чем стандартные сообщения уровня «INFO:». Добавление context-param и listener в web.xml завершается неудачно, потому что контейнер не может найти классы log4j, даже если они есть, и хотя я могу добавить их снова в проект.

Итак, вопрос в том, что мне нужно сделать, чтобы получить трассировку метода (это можно сделать через AOP) и улучшенную отладку (для этого обязательно нужен log4j) в Spring 3.0?

1 Ответ

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

Если я не ошибаюсь, Spring 3.X использует SLF4J для ведения журнала. Обычно вам нужно добавить привязку SLF4J для выбранной вами среды ведения журналов - например, для log4, jar slf4j-log4j12 должен присутствовать в classpath, а также в log4j.jar, и они лучше должны быть правильными версиями - я нашел SLF4J требовательным тот. Подробнее здесь . Также не забудьте конфигурацию log4j.xml.

...