我最近升级到 spring 3.2 并注意到AnnotationMethodHandlerAdapter
已被弃用,取而代之的是RequestMappingHandlerAdapter
。所以我重新配置为使用新类,并完成自定义MessageConverter
我需要。一切都很好。
但是,当尝试访问带注释支持的 URL 时Controller
,我收到错误:
[java] javax.servlet.ServletException: No adapter for handler [my.company.TagController@1c2e7808]: 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
. The AnnotatedMethodHandlerAdapter
的支持方法是..嗯,不同(并且仍然有效!)
public boolean supports(Object handler) {
return getMethodResolver(handler).hasHandlerMethods();
}
所以我显然不能简单地升级到新的类...我缺少一些额外的配置,但文档并没有真正帮助我。有任何想法吗?
Thanks.
Use "<mvc:annotation-driven/>
” 在 spring 配置文件中,而不是编写自己的 WebMvcConfigurationSupport 实现
example
<mvc:annotation-driven/>
<context:component-scan base-package="com.springapp.mvc"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
<bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
</list>
</property>
</bean>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)