Ich habe kürzlich auf Frühling 3.2 aktualisiert und festgestellt, dass AnnotationMethodHandlerAdapter
zugunsten veraltet worden war. Also habe ich neu konfiguriert, um die neue Klasse zu verwenden, komplett mit einer benutzerdefinierten MessageConverter
, die ich brauche. Alles in Ordnung und gut.Ersetzen von AnnotationMethodHandlerAdapter durch RequestMappingHandlerAdapter-Problem
Wenn jedoch eine URL von einer kommentierten Controller
unterstützt zu schlagen versucht, erhalte ich eine Fehlermeldung:
[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)
Wenn der Dispatcher debuggen, und insbesondere die Dispatcher.getHandlerAdapter()
Methode, es ist meine HandlerAdapter
zu finden, aber die AbstractHandlerMethodAdapter.supports()
die aufgerufen wird, will eine MethodHandler
:
public final boolean supports(Object handler) {
return handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler);
}
und der Controller ist kein HandlerMethod
. Die AnnotatedMethodHandlerAdapter
‚s Unterstützung Methode ist .. gut, andere (und funktioniert immer noch!)
public boolean supports(Object handler) {
return getMethodResolver(handler).hasHandlerMethods();
}
So kann ich einfach offenbar nicht auf die neue Klasse ein Upgrade ... Ich bin einige zusätzliche Konfiguration fehlen, aber die Dokumentation isn Es hilft mir nicht wirklich. Irgendwelche Ideen?
Danke.
Für das, was es wert ist das dokumentiert http: // docs .spring.io/spring-framework/docs/3.1.x/spring-framework-reference/html/neu-in-3.1.html # neu-in-3.1-handler-method-controller-processing –