Gần đây tôi đã nâng cấp lên mùa xuân 3.2 và nhận thấy rằng AnnotationMethodHandlerAdapter
đã không được chấp nhận vì lợi ích của RequestMappingHandlerAdapter
. Vì vậy, tôi cấu hình lại để sử dụng các lớp học mới, hoàn thành với một tùy chỉnh MessageConverter
tôi cần. Tất cả tốt và tốt.thay thế AnnotationMethodHandlerAdapter bằng RequestMappingHandlerAdapter issue
Tuy nhiên, khi cố gắng để đạt một URL được hỗ trợ bởi một chú thích Controller
, tôi nhận được một lỗi:
[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)
Khi gỡ lỗi dispatcher, và đặc biệt, phương pháp Dispatcher.getHandlerAdapter()
, nó tìm HandlerAdapter
của tôi, nhưng AbstractHandlerMethodAdapter.supports()
đó được gọi muốn một MethodHandler
:
public final boolean supports(Object handler) {
return handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler);
}
và bộ điều khiển không phải là một HandlerMethod
. Phương pháp hỗ trợ các AnnotatedMethodHandlerAdapter
's là .. tốt, khác nhau (và các công trình vẫn còn!)
public boolean supports(Object handler) {
return getMethodResolver(handler).hasHandlerMethods();
}
Vì vậy, tôi dường như không thể đơn giản nâng cấp lên lớp mới ... Tôi đang thiếu một số cấu hình bổ sung, nhưng isn tài liệu không thực sự giúp tôi. Bất kỳ ý tưởng?
Cảm ơn.
Đối với những gì nó có giá trị này http được ghi nhận: // docs .spring.io/spring-framework/docs/3.1.x/spring-framework-reference/html/new-in-3.1.html # new-in-3.1-handler-method-controller-processing –