zoukankan      html  css  js  c++  java
  • 添加@ControllerAdvice后报错 Failed to invoke @ExceptionHandler method

    首先。单独使用ControllerAdvice 无法正常工作。需要配合@EnableWebMvc 使用。

     

    @ControllerAdvice

    @EnableWebMvc

    pulbic class ExceptionControllerAdvice{

     

      @ExceptionHandler(NotFoundException.class)

      @ResponseBody

      public Map<String,Object> notFoundExc(NotFoundException exc,HttpServletRequest req){

      .......

      }

    }

    在启动之异常处理报错。

    错误信息:

    七月 04, 2016 11:00:11 上午 org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver doResolveHandlerMethodException

    严重: Failed to invoke @ExceptionHandler method: public java.util.Map<java.lang.String, java.lang.Object> com.dooioo.modelException.ExceptionControllerAdvice.notFoundError(com.dooioo.modelException.NotFoundException,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

    org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:134)

    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101)

    at...........(省略。。。。)

     

     

    xx-servlet.xml中已经配置了messageconverter处理器了。

     

     <bean id="dyMessageConverter" class="com.dooioo.web.converter.DyMappingJacksonHttpMessageConverter"/>

     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

     

            <!-- spring绑定时处理函数 -->

            <property name="webBindingInitializer">

                <bean class="com.dooioo.init.DefaultBindingInitializer"/>

            </property>

     

            <property name="messageConverters">

                <list>

                    <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>

                    <ref bean="dyMessageConverter"/>

                </list>

            </property>

            <property name="requireSession" value="false"/>

            <property name="order" value="0"/>

        </bean>

     

    上网翻了一遍资料 没有结果。

    最后发现和在xml中的顺序有关系。<mvc:annotation-driven/>。

    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 适配器必须声明在<mvc:annotation-driven />之前,否则不能正常处理参数类型的转换 

     

    到此问题解决。

  • 相关阅读:
    算法详解(LCA&RMQ&tarjan)补坑啦!完结撒花(。◕ˇ∀ˇ◕)
    借教室(NOIP2012)
    同余方程(NOIP2012)
    开车旅行(NOIP2012)
    剑指offer-int类型负数补码中1的个数-位操作
    直接插入排序的再再改进
    剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组
    递归的再一次理解-斐波那契数列
    剑指offer-顺时针打印矩阵-二维数组
    剑指offer-第一个只出现一次的字符-字符串和数组
  • 原文地址:https://www.cnblogs.com/luoluoshidafu/p/5639892.html
Copyright © 2011-2022 走看看