我写了一个控制器。我只是修改了它来接受对象列表而不仅仅是一个对象。所以我创建了一个包含原始对象列表的包装类。但在此之后我得到415 - 不支持的媒体类型。我无法弄清楚为什么会发生这种情况。尝试了几乎所有我能找到的建议。
控制器类:
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> addCPCodeUser(HttpServletRequest request,
@RequestBody CPCodeUserWrapper users) {
包装类:
public class CPCodeUserWrapper {
private List<CPCodeUser> users;
.... setters and getters ...
}
原班:
public class CPCodeUser {
private String userId;
private String name;
List<String> roles;
.... setters and getters....
}
url - v1/users/
JSON :
{
"users" : [{
"userId" : "user1",
"roles" : ["role1", "role2"]
},{
"userId" : "user2",
"roles" : ["role1", "role2"]
}]
}
答案 0 :(得分:0)
你的POJO没有参数构造函数吗?当JSON库无法实例化对象并且异常被spring混淆时,我遇到了非常模糊的错误。
您是否正在使用MockMVC框架来测试您的控制器?我发现单元测试通常会在部署应用程序时提供更明确的例外
答案 1 :(得分:0)
您可以尝试修改CPCodeUser
,如下所示:
public class CPCodeUser {
private String userId;
private List<String> roles;
.... setters and getters....
}