org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
无法找到可接受的代理
返回 406 http 状态码
基于 springboot,使用
@RestController
和
@PostMapping
注解
这样 web 层返回结果时,直接
return Object
,由 spring 将
Object
转化为 json 返回给前端
本次原因
: 返回体对象没有写 get() 方法【已验证】
使用
@RestController
注解后,controller 层方法直接返回对象,由 spring 来转换为 json 对象返回给前端
如果返回的对象没有 get 或者 set 方法,就会在对象转换为 json 时出现问题,从而抛出这个异常
该原因最不容易发现,因为异常提示和该原因关联性并不强
网上搜索的其他原因【未验证】
@PostMapping()
注解中的属性 produces 问题
考虑
produces = {MediaType.APPLICATION_JSON_VALUE}
该原因是返回体和 produces 描述类型不符合,考虑更换或者去除
mvc 扫描 url 的方式问题
该原因是对 url 的解析存在问题
一种原因是匹配规则有问题,考虑换规则,配置搜索关键字“mvc 路径匹配规则”
一种原因是对 url 后缀识别问题,例如 “/user/login.html”,spring 返回时会返回 html 格式,又例如 “/user/login.json”,spring 返回时会返回 json 格式,该问题配置进制后缀扫描即可