[英][Failed to convert property value of type 'java.lang.String[]' to required type 'java.util.List' for property
[英]Java_Spring: Failed to convert property value of type 'java.lang.String' to required type 'java.util.Map' for property 'paramsMap'
使用 Java Spring 创建一个 rest API 并希望以 Map 格式获取输入,但出现以下错误。 有谁知道是什么导致了这个异常的发生?
已查看资源(无法解决问题):
http://www.java2s.com/Tutorials/Java/Spring/0140__Spring_Map_Properties.htm
Spring MVC 填充 @RequestParam Map<String, String>
https://www.baeldung.com/spring-date-parameters
@RequestMapping("/api")
public interface ApiController {
@GetMapping("/submitJob")
JobSubmitResultDTO submitJob(@RequestBody JobSubmitRequestDTO request);
}
@Data
public class JobSubmitRequestDTO {
Map<String,Object> paramsMap = new HashMap<String,Object>();
}
@Data
public class JobSubmitResultDTO {
String jobID;
String message;
}
@RestController
public class ApiController implements ApiController {
@Override
public JobSubmitResultDTO submitJob(JobSubmitRequestDTO request) {
//Create an instance of JobSubmitResultDTO
JobSubmitResultDTO response = new JobSubmitResultDTO();
return response; //return null values for now
}
}
URL: http://XXXXXXXXX:XXXXX/api/submitJob?paramsMap=%7B%7D
***passing {} -> %7B%7D or {'Age':12} would return the same error***
Error:
{
"timestamp": "2020-03-19T21:38:15.443+0000",
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.validation.BindException",
"errors": [
{
"codes": [
"typeMismatch.jobSubmitRequestDTO.paramsMap",
"typeMismatch.paramsMap",
"typeMismatch.java.util.Map",
"typeMismatch"
],
"arguments": [
{
"codes": [
"jobSubmitRequestDTO.paramsMap",
"paramsMap"
],
"arguments": null,
"defaultMessage": "paramsMap",
"code": "paramsMap"
}
],
"defaultMessage": "Failed to convert property value of type 'java.lang.String' to required type 'java.util.Map' for property 'paramsMap'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'java.util.Map' for property 'paramsMap': no matching editors or conversion strategy found",
"objectName": "jobSubmitRequestDTO",
"field": "paramsMap",
"rejectedValue": "{}",
"bindingFailure": true,
"code": "typeMismatch"
}
],
"message": "Validation failed for object='jobSubmitRequestDTO'. Error count: 1",
"path": "/api/submitJob"
}
您正在使用代码接受请求正文中的数据。
JobSubmitResultDTO submitJob(@RequestBody JobSubmitRequestDTO request);
将您的 JobSubmitRequestDTO 对象发送到请求正文中。 这是 JSON 类型的示例请求正文,它正在工作(我使用邮递员进行了测试):
{ "paramsMap": { "Key1":"Value1", "Key2":"Value2" } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.