返回hashmap错误

返回hashmap错误

Type Exception Report
Message No converter found for return value of type: class java.util.HashMap
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.HashMap
	org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:238)
	org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
	org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:124)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
Note The full stack trace of the root cause is available in the server logs.

返回String正常,因为后面ssm校园管理项目,我看老师也没做什么配置,但是返回hashmap也能在前端显示,而且我想问的是为什么我这里返回hashmap有问题.,在校园店铺管理没问题呢,还有@ResponseBody,返回页面上的好像就是json字符串呀,

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

同学jar包下载下来了吗?

http://img1.sycdn.imooc.com//climg/5ddd05a6095b9efd05060139.jpg

清除一下idea的缓存呢?

http://img1.sycdn.imooc.com//climg/5ddd05cc094518c502630542.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 慕设计2030095 提问者 #1
    删了缓存重新弄了个项目就成功了.神奇的地球不纠结了
    2019-11-26 19:18:19
好帮手慕柯南 2019-11-26 18:49:51

同学,

  1. 重新编译一下项目,清除一下浏览器的缓存,测试一下呢?

  2. 另外可以去本地仓库中看一下这三个jar是否真的下载下来了,如果没有,也可以将本地仓库相应目录下的内容删除,刷新maven,重新下载测试一下

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕设计2030095 #1
    都试过,换项目也试过.也是提示org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.HashMap
    2019-11-26 18:52:21
好帮手慕柯南 2019-11-26 18:12:04

同学你好!

老师在本地测试你的代码是没有问题的呢

http://img1.sycdn.imooc.com//climg/5ddcf9cd0971bb4c05570173.jpg

请问同学的pom文件中是不是没有引入json的jar包呢,建议同学添加一下

<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-databind</artifactId>
    <version>2.9.9</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.9</version>
</dependency>

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕设计2030095 #1
    神奇的是这三个包我都添加了....
    2019-11-26 18:14:08
提问者 慕设计2030095 2019-11-26 17:36:14

@RequestMapping("/get")
@ResponseBody
private Map<String, Object> get() {
   Map<String, Object> modelMap = new HashMap<String, Object>();
   modelMap.put("count", 123);
   modelMap.put("success", true);
   return modelMap;
}

@GetMapping("/newget")
@ResponseBody
private String newGet() {
   Map<String, Object> map = new HashMap<String, Object>();
   map.put("count", 123);
   map.put("success", true);
   map.toString();
   return map.toString();
}

newGet返回String是没问题的

好帮手慕柯南 2019-11-26 17:34:25

同学你好!

  1. 校园商铺中老师在返回集合的方法上面添加了@ResponseBody注解

    http://img1.sycdn.imooc.com//climg/5ddcf15f09da5c2e06320126.jpg

  2. 不加@ResponseBody注解,会报错呢,因为默认返回的是页面。

祝学习愉快~


  • 提问者 慕设计2030095 #1
    我也加ResponseBody啦 可是还是会报错
    2019-11-26 17:35:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师