栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用ResponseEntity 返回空的HTTP响应不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用ResponseEntity 返回空的HTTP响应不起作用

注意:对于问题4.1.1.RELEASE中提到的版本,这是正确的。

Spring MVC ResponseEntity
通过来处理返回值
HttpEntityMethodProcessor

当ResponseEntity值未设置主体(如你的代码段中的情况)时,将

HttpEntityMethodProcessor
尝试根据处理程序方法
ResponseEntity
签名中的返回类型的参数确定响应主体的内容类型
@RequestMapping

因此对于

public ResponseEntity<Void> taxonomyPackageExists( @PathVariable final String key ) {

该类型将是Void。

HttpEntityMethodProcessor
然后将遍历其所有已注册
HttpMessageConverter
实例,并找到可以为某种Void类型编写主体的实例。根据你的配置,可能找不到,也可能找不到。

如果确实找到任何内容,则仍然需要确保将使用与请求Accept标头中提供的类型匹配的Content-Type编写相应的正文application/xml。

如果在所有这些检查之后都不

HttpMessageConverter
存在,Spring MVC将决定它无法产生可接受的响应,因此返回406 Not Acceptable HTTP响应。

使用

ResponseEntity<String>
,Spring将String用作响应主体并查找
StringHttpMessageConverter
作为处理程序。并且由于
StringHttpMessageHandler
可以产生任何媒体类型的内容(Accept标头中提供),因此它将能够处理application/xml你的客户端所请求的内容。

从那以后,Spring MVC已更改为仅如果

ResponseEntityNOT
中的主体为,则仅返回406 null。如果你使用的是Spring MVC的最新版本,则你不会在原始问题中看到该行为。

在iddy85的解决方案中(这似乎暗示

ResponseEntity<?>
了这一点),人体的类型将推断为Object。如果你的类路径中有正确的库,即。杰克逊(版本> 2.5.0)及其XML扩展,Spring MVC将
MappingJackson2XmlHttpMessageConverter
可以使用它来
application/xml
为type 生成Object。他们的解决方案仅在这些条件下有效。否则,由于与我上述相同的原因,它将失败。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386401.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号