使用 REST 访问 JPA 数据失败 找不到合适的 HttpMessageConverter
Posted
技术标签:
【中文标题】使用 REST 访问 JPA 数据失败 找不到合适的 HttpMessageConverter【英文标题】:Accessing JPA Data with REST fails No suitable HttpMessageConverter found 【发布时间】:2015-01-22 18:50:11 【问题描述】:我已经为此苦苦挣扎了一段时间,但找不到解决方案。我正在运行 SpringBoot 指南,使用 REST 访问 JPA 数据 (http://spring.io/guides/gs/accessing-data-rest/) 不起作用。
只需下载并运行它就可以正常运行,允许 GET 调用
http://localhost:8080/people
使用邮递员。但是,每当我尝试 PUT 或 POST 时,我都会收到以下错误
"cause": null,
"message": "No suitable HttpMessageConverter found to read request body into object of type class hello.Person from request with content type of text/plain;charset=UTF-8!"
我通过 PUT 传递的 json 是
"firstName": "Dave",
"lastName": "Something"
这只是运行原版项目,没有任何变化。许多其他的指导项目工作正常,所以我知道 MVN、Spring boot 等工作正常。
尝试了很多论坛,但没有任何建议有效。
任何帮助将不胜感激。
谢谢 戴夫
【问题讨论】:
【参考方案1】:您的 POST 请求的内容类型为 text/plain
,而服务器不知道如何将纯文本转换为 hello.Person
实例。
您需要通过将请求的 Content-Type
标头设置为 application/json
来告诉服务器您正在发送 JSON
【讨论】:
谢谢。我忘了说我在内容类型中明确发送 application/json 但 spring 似乎仍然认为它正在获取 text/plain。【参考方案2】:我使用 Google Chrome 的 Postman 扩展程序并发送原始 JSON "firstName": "Frodo", "lastName": "Baggins"
。那行得通。
请记住指定 HTTP 标头 Content-Type: application/json
。
【讨论】:
【参考方案3】:Content-Type:application/json 尝试删除 header 中 content-type:* 和 application 之间的空格。
【讨论】:
以上是关于使用 REST 访问 JPA 数据失败 找不到合适的 HttpMessageConverter的主要内容,如果未能解决你的问题,请参考以下文章
错误:找不到 Requirement.parse('rest_framework>=3.6.3') 的合适分布
加载 xdebug 安装失败 - xdebug.so,9 找不到合适的图像
在较旧的 iOS 模拟器上运行时 Xcode 10 测试失败 - “无法加载测试包......找不到合适的图像”
找不到合适的服务器(`serverSelectionTryOnce` set):[TLS握手失败:错误:14090086:SSL例程:ssl3_get_server_certificate confi