美文网首页
Spring mvc 开启json转换,出现java.lang

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

作者: BeStronger30 | 来源:发表于2018-02-26 13:51 被阅读0次

    在使用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

    相关文章

      网友评论

          本文标题:Spring mvc 开启json转换,出现java.lang

          本文链接:https://www.haomeiwen.com/subject/cccyxftx.html