Spring mvc SpringMVC:如何修复415响应错误

Spring mvc SpringMVC:如何修复415响应错误,spring-mvc,Spring Mvc,由于我没有找到任何fox 415响应错误的工作示例,我仍然无法理解Spring为什么不能处理以下请求: @RestController @AllArgsConstructor @请求映射(“/organization”) @Slf4j 公共类组织控制器{ ... @PutMapping(value=“/public certificates”) 公共列表更新证书(@RequestBody-Map-body){ 字符串companyNumber=body.getOrDefault(“kbo”,“未

由于我没有找到任何fox 415响应错误的工作示例,我仍然无法理解Spring为什么不能处理以下请求:

@RestController
@AllArgsConstructor
@请求映射(“/organization”)
@Slf4j
公共类组织控制器{
...
@PutMapping(value=“/public certificates”)
公共列表更新证书(@RequestBody-Map-body){
字符串companyNumber=body.getOrDefault(“kbo”,“未知”);
列表证书=organizationClient.updateCertificates(公司编号);
退货证明书;
}
并返回:

Completed 415 UNSUPPORTED_MEDIA_TYPE
以下是请求的一个CURL版本:

curl -X PUT -i http://localhost:8080/api/organization/public-certificates --data 'kbo=123.456.789'
即使修改后如下:

url -H "Accept: application/json" -H "Content-Type:application/json" -X PUT -i http://localhost:8080/api/organization/public-certificates --data '{"kbo": "0316.380.940"}'
@PutMapping(value=“/public certificates”)
公共列表更新证书(@RequestBody CompanyNumber body){
字符串companyNumber=body.getKbo();
列表证书=organizationClient.updateCertificates(公司编号);
退货证明书;
}
@吸气剂
@塞特
私有类公司编号{
私有字符串kbo;
}
并使用
curl
,如下所示:

url -H "Accept: application/json" -H "Content-Type:application/json" -X PUT -i http://localhost:8080/api/organization/public-certificates --data '{"kbo": "0316.380.940"}'
没有解决问题


我错过了什么?

以下是对我有用的东西:

@RestController
@AllArgsConstructor
@请求映射(“/organization”)
@Slf4j
公共类组织控制器{
...
@PutMapping(value=“/public certificates”)
公共列表更新证书(@RequestBody-Map-body){
字符串companyNumber=body.getOrDefault(“kbo”,“未知”);
列表证书=organizationClient.updateCertificates(公司编号);
退货证明书;
}
使用以下CURL命令运行时:

curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X PUT --data '{"kbo": "0316.380.940"}' "http://localhost:8080/api/organization/public-certificates" 

对你有帮助吗?我真的看不到最好的答案。我已经到处看了,仍然没有任何线索。我的
CertificateDTO
类是否应该有一个默认的空构造函数使其工作?请尝试@RequestMapping refer。你缺少像application/json这样的媒体类型mostly@Mayur,无用,因为控制器已注释(参见上文).好的,然后尝试使用-H“Accept:application/json”执行curl命令