`
lanfei
  • 浏览: 150371 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

cannot be cast to org.springframework.web.method.HandlerMethod 解决方法

    博客分类:
  • java
 
阅读更多

用annotation做权限控制的时候,在拦截器里转时

    @Override  

    public boolean preHandle(HttpServletRequest request,  

            HttpServletResponse response, Object handler) throws Exception {  

 HandlerMethod handler2 = (HandlerMethod) handler;

//NotAuth notAuth = handler2.getMethodAnnotation(NotAuth.class); 

 

报错

java.lang.ClassCastException: com.*.*Controller cannot be cast to org.springframework.web.method.HandlerMethod

意思是无法转换成HandlerMethod对象

解决办法:

<bean  class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> 
替换 
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> 
因为DefaultAnnotationHandlerMapping只能返回Controller对象,不会映射到Controller中的方法级别

 

参考:http://chenzhou123520.iteye.com/blog/1702563

 

分享到:
评论
1 楼 zx19924311 2015-09-21  
在吗! 
请教下 我也遇到这个问题了 ,无法解决

配置方式
<mvc:interceptors> 
        <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <mvc:exclude-mapping path="/login.htm"/>
        <mvc:exclude-mapping path="/register.htm"/>
            <bean class="com.filter.AuthInterceptor"/> 
        </mvc:interceptor> 
       </mvc:interceptors>


HandlerMethod handler2 = (HandlerMethod) handler; 看了网上很多网站还是如此,请求指点一二!

相关推荐

Global site tag (gtag.js) - Google Analytics