Spring mvc 开启json转换,出现java.lang

2018-02-26  本文已影响0人  BeStronger30

在使用Jmeter对一个接口做压力测试的时候,查看结果树的每次请求的状态显示都是报错,查看响应数据报500错误,显示的异常信息为 No converter found for return value of type :java.util.HashMap 异常,但是查看程序日志处理,所有请求都完成了正确的操作,所以定位到异常时在返回结果时,返回的是一个Map类型参数,在json转换的过程中发生了错误。进行如下排查

  1. spring mvc进行json转换时需要依赖jackson的jar包,查看maven依赖是否添加,发现之前构建项目的时候没有请求接口,所以也没有添加依赖,那么就添加依赖
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.3</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.3</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.3</version>
    </dependency>
  2. 然后进行spring-mvc.xml的配置开启json转换
    <mvc:annotation-driven>
    <mvc:message-converters>
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
    <property name="supportedMediaTypes">
    <list>
    <value>text/plain;charset=UTF-8</value>
    <value>text/html;charset=UTF-8</value>
    <value>text/css;charset=UTF-8</value>
    </list>
    </property>
    </bean>
    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <property name="supportedMediaTypes">
    <list>
    <value>application/json; charset=UTF-8</value>
    <value>application/x-www-form-urlencoded; charset=UTF-8</value>
    </list>
    </property>
    </bean>
    </mvc:message-converters>
    </mvc:annotation-driven>
    然后重新编译项目,启动项目,启动的时候就开始报

java.lang.ClassNotFoundException: com.fasterxml.jackson.core.util.DefaultPrettyPrinter

异常,网上查询说是版本冲突,于是更换了好几个版本,依然报该错误,很是不解,查看maven依赖进来的jar包,也能找到这个类,百思不得其解,于是去吃饭,吃完饭回来一想,找不到是不是压根编译就没有引入进去jackson的jar包,因为使用的IDEA,所以打开该项目的Project Structure,查看生成的Artifacts包含的jar包信息,果然没有,发现Available Elements 有对应的我新增加的jackson的maven依赖jar包,双击把它们都添加到左边的依赖jar包列表中即可,重新编译项目,启动,不再出现异常,返回数据正常进行json转换。


spring mvc jackson转换异常.png
上一篇下一篇

猜你喜欢

热点阅读