我正在尝试向我的服务发布请求,但它无效。我得到了400 Bad Request
。我有完全在同一个控制器中工作的GET请求。
以下是方法:
@RequestMapping(value = "/assign", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Form5398Obj arriveTrip(@PathVariable String siteId,
@RequestBody ErrorMsg anError) throws Exception {
System.out.println(anError.toString());
}
ErrorMessage java类如下:
public class ErrorMsg {
private String code;
private String msg;
private String request;
public ErrorMsg(String code, String msg, String request)
{
this.code = code;
this.msg = msg;
this.request = request;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getRequest() {
return request;
}
public void setRequest(String request) {
this.request = request;
}
}
我没有配置任何其他内容。我需要做些什么才能让它发挥作用?我正在使用JavaConfig,我是否需要添加任何bean声明?
我发送: 使用Content-Type:application / json
{
"code" : "101",
"msg" : "Hello Test",
"request" : "1"
}
答案 0 :(得分:11)
我相信你需要一个没有参数的ErrorMsg构造函数,以便Jackson可以实例化一个对象来填充传入的请求。否则,它不知道如何填充3参数构造函数中的参数。
尝试添加以下内容
public ErrorMsg() {
}