我正在使用spring框架。我在Wepsphere服务器上有一个web服务,就像那样
@RequestMapping (value="/services/SayHello2Me" , method=RequestMethod.GET, headers="Accept=application/json")
@ResponseBody
public JSONObject SayHello2Me(HttpServletRequest request) throws Exception {
String input = (String) request.getParameter("name");
String output = "hello " + input + " :)";
JSONObject outputJsonObj = new JSONObject();
outputJsonObj.put("output", output);
return outputJsonObj;
}
当我将其称为Chrome http://myserver/services/sayHello2Me?name=' baris'时,它会返回该错误:
错误404:SRVE0295E:报告错误:404
如果我在我的网络服务中更改注释
@RequestMapping (value="/services/SayHello2Me")
@ResponseBody
public JSONObject SayHello2Me(HttpServletRequest request) throws Exception {
String input = (String) request.getParameter("name");
String output = "hello " + input + " :)";
JSONObject outputJsonObj = new JSONObject();
outputJsonObj.put("output", output);
return outputJsonObj;
}
然后当我将其称为Chrome http://myserver/services/sayHello2Me?name=' baris'时,它会返回该错误:
错误406:SRVE0295E:报告错误:406
有一个jsonobject问题,因为如果我在同一个webservice中返回jsonobject的String insted,它会成功返回。
如何在spring restful webservice中返回Jsonobject?
答案 0 :(得分:6)
406-不可接受的回应
您应该使用return outputJsonObj.toString();
尝试以下
@RequestMapping (value="/services/SayHello2Me")
@ResponseBody
public String SayHello2Me(HttpServletRequest request) throws Exception {
String input = (String) request.getParameter("name");
String output = "hello " + input + " :)";
JSONObject outputJsonObj = new JSONObject();
outputJsonObj.put("output", output);
return outputJsonObj.toString();
}
答案 1 :(得分:1)
你可以使用杰克逊:
@RequestMapping (value="/services/SayHello2Me" , method=RequestMethod.GET, produces="application/json")