我最近升级到了spring 3.2,并注意到AnnotationMethodHandlerAdapter
已被弃用,转而使用RequestMappingHandlerAdapter
。所以我重新配置使用新类,完成我需要的自定义MessageConverter
。一切都很好,很好。用RequestMappingHandlerAdapter替换AnnotationMethodHandlerAdapter问题
但是,试图击中一个注解Controller
支持的URL的时候,我发现了一个错误:
[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()
想要一个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();
}
所以我显然不能简单地升级到新的类......我失去了一些额外的配置,但文档ISN真的帮不了我。有任何想法吗?
谢谢。
对于它的价值这是记录HTTP在使用 “
<mvc:annotation-driven/>
”://文档.spring.io /弹簧的框架/文档/ 3.1.X /弹簧的框架参考/ HTML /新功能于3.1.html#新功能于3.1处理程序法控制器处理 –