Недавно я обновился до spring 3.2 и заметил, что AnnotationMethodHandlerAdapter
устарел в пользу RequestMappingHandlerAdapter
. Поэтому я переконфигурировал использование нового класса, в комплекте с пользовательским MessageConverter
мне нужно. Все хорошо и хорошо.
Однако при попытке нажать URL-адрес, поддерживаемый аннотированным Controller
, я получаю сообщение об ошибке:
[java] javax.servlet.ServletException: No adapter for handler [[email protected]]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
[java] at org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1128)
[java] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:903)
[java] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
При отладке диспетчера и, в частности, метода Dispatcher.getHandlerAdapter()
, он находит мой HandlerAdapter
, но вызываемый AbstractHandlerMethodAdapter.supports()
хочет a MethodHandler
:
public final boolean supports(Object handler) {
return handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler);
}
и контроллер не является HandlerMethod
. Метод поддержки AnnotatedMethodHandlerAdapter
... ну, другой (и работает все еще!)
public boolean supports(Object handler) {
return getMethodResolver(handler).hasHandlerMethods();
}
Поэтому я, по-видимому, не могу просто перейти на новый класс... Мне не хватает некоторой дополнительной настройки, но документация на самом деле не помогает мне. Любые идеи?
Спасибо.