springboot项目提示No converter found for return value of type: class java.util.LinkedHashMap,@Request...

先说解决方案,在pom中加入如下依赖,解决。

        <!--json-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.9</version>
        </dependency>

说起来,这可真真是一个坑爹的问题,困扰了一天,烦了一天,我真以为我大半年没碰java,连新建个sprintboot的rest接口用完美的intellij idea这么高大上的工具都创建不出来了呢。

接口

看看错误吧.
两个连入门都算不上的接口

package com.marvin.demo.controller;

import com.marvin.demo.vo.DemoEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * 精诚所至,金石为开。
 * 石の上にも三年;陽気の発する所金石亦透る。
 *
 * @Author mahaiqiang
 * @Create 2020/2/1 11:06 下午
 * @Description TODO
 **/
@Slf4j
@RestController
public class DemoController {

    @GetMapping("/demo1")
    public DemoEntity demo1() {
        log.info("第一个get接口");
        DemoEntity de = new DemoEntity();
        de.setName("李四");
        return de;
    }

    @PostMapping("/demo2")
    public DemoEntity demo2(@RequestBody DemoEntity entity) {
        log.info("第一个post接口, 参数:{}", entity);
        entity.setName("Hello, " + entity.getName());
        return entity;
    }
}

错误

GET是正常的,但是POST的这个接口,因为用了@RequestBody注解,要转换json,所以就死活不行。
错误是这样的:

2020-02-03 22:55:34.382  WARN 40841 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported]
2020-02-03 22:55:34.405  WARN 40841 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.LinkedHashMap]

出这个错我先上网查,有个推荐找不到了说引入jackson看日志我引入的是2.9.6不知道是不是还少引用了啥,反正没成。

让别的同事试了下,人家说啥也不用干,导入进去就能运行,日了狗了,咋回事,肯定就是环境问题了呗。

于是就jdk、maven、intellij idea,重新配置,甚至重装,都搞一遍也没办法了。

第二天继续按照错误提示找,找到个原来就翻出来过的链接,加了依赖后莫名其妙好了,而且删除了依赖立马就能复现问题了。

正常

预期是这样的

com.marvin.demo.DemoApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.4.RELEASE)

2020-02-03 22:51:16.565  INFO 40753 --- [           main] com.marvin.demo.DemoApplication          : Starting DemoApplication on 192.168.0.105 with PID 40753 (/Users/mahaiqiang/git/mygitrepo/secret-demo/target/classes started by mahaiqiang in /Users/mahaiqiang/git/mygitrepo/secret-demo)
2020-02-03 22:51:16.571  INFO 40753 --- [           main] com.marvin.demo.DemoApplication          : No active profile set, falling back to default profiles: default
2020-02-03 22:51:17.751  INFO 40753 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-02-03 22:51:17.763  INFO 40753 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-02-03 22:51:17.764  INFO 40753 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.30]
2020-02-03 22:51:17.838  INFO 40753 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-02-03 22:51:17.838  INFO 40753 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1205 ms
2020-02-03 22:51:18.043  INFO 40753 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-02-03 22:51:18.230  INFO 40753 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-02-03 22:51:18.234  INFO 40753 --- [           main] com.marvin.demo.DemoApplication          : Started DemoApplication in 2.039 seconds (JVM running for 2.681)
2020-02-03 22:51:29.934  INFO 40753 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-02-03 22:51:29.934  INFO 40753 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-02-03 22:51:29.942  INFO 40753 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 8 ms
2020-02-03 22:51:30.045  INFO 40753 --- [nio-8080-exec-1] c.marvin.demo.controller.DemoController  : 第一个post接口, 参数:DemoEntity(name=a)
2020-02-03 22:51:50.866  INFO 40753 --- [nio-8080-exec-3] c.marvin.demo.controller.DemoController  : 第一个post接口, 参数:DemoEntity(name=marvin)

这次是百度救了我,我一般用的必应搜索引擎,没想到按照第二个错误百度出来的第一条直接就是解决方案。

但是按照方案说第一条,我的pom文件里已经有spring-boot-starter-web

<dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
</dependency>

但是还是逼着我加了jackson才好使了。
先记录一笔,再慢慢想原因吧。

感谢

SpringBoot2.X 遭遇 No converter found for return value of type: class java.util.LinkedHashMap

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342