spring mvc @Responsebody支持问题

最近在做spring mvc的注解方式的框架配置,用注解的方式配置的确少写了很多代码,很方便。不过在支持@Responsebody的配置过程中出现了一个问题。

在做spring mvc时,我用了spring mvc-3.2的版本和spring-mvc-4.1.5的版本。在前者的版本中配置过程中,对系统进行访问,请求头accept:application/json,此时出现406 Not Acceptable的错误,后台应用也报出

21:43:31,159 DEBUG ExceptionHandlerExceptionResolver:134 - Resolving exception from handler [public java.util.Map<java.lang.String, java.lang.String> com.atp.uc.web.RestfulController.getJson()]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
21:43:31,162 DEBUG ResponseStatusExceptionResolver:134 - Resolving exception from handler [public java.util.Map<java.lang.String, java.lang.String> com.atp.uc.web.RestfulController.getJson()]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
21:43:31,162 DEBUG DefaultHandlerExceptionResolver:134 - Resolving exception from handler [public java.util.Map<java.lang.String, java.lang.String> com.atp.uc.web.RestfulController.getJson()]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

一开始以为是哪边的配置出了问题,后来仔细寻找发现缺少依赖包 jackson-core-asl-1.9.13.jar,jackson-mapper-asl-1.9.13.jar,造成的,事实也是如此,在spring-mvc3.2的版本中解决了问题。

  后来我讲spring-mvc升级到4.1.5的时候,我把上面的依赖包依然加到项目中,但是同样的问题还是出现了,这个问题后来花了不少的时间。后来查了spring的api文档才知道新版的org.springframework.http.converter.json.MappingJackson2HttpMessageConverter支持Jackson 2,必须加依赖包

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.4.4</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.4.4</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.4.4</version>

   </dependency>

这样问题就解决了

猜你喜欢

转载自blog.csdn.net/lztyll123/article/details/44160867