Return spring restful 网络服务中的 JsonObject
Return JsonObject in spring restful webservice
我正在使用 spring 框架。我在 Wepsphere 服务器中有一个这样的网络服务
@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;
}
当我像 http://myserver/services/sayHello2Me?name='baris' 那样从 Chrome 调用它时,它 return 告诉我那个错误:
Error 404: SRVE0295E: Error reported: 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;
}
然后当我像 http://myserver/services/sayHello2Me?name='baris' 那样从 Chrome 调用它时,它 return 告诉我那个错误:
Error 406: SRVE0295E: Error reported: 406
有一个 jsonobject 问题,因为如果我 return 在同一个网络服务中安装 jsonobject 的字符串,它 return 就成功了。
如何在 spring restful 网络服务中 return Jsonobject?
406-Not Acceptable Response
你应该使用 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();
}
你可以使用杰克逊:
@RequestMapping (value="/services/SayHello2Me" , method=RequestMethod.GET, produces="application/json")
我正在使用 spring 框架。我在 Wepsphere 服务器中有一个这样的网络服务
@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;
}
当我像 http://myserver/services/sayHello2Me?name='baris' 那样从 Chrome 调用它时,它 return 告诉我那个错误:
Error 404: SRVE0295E: Error reported: 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;
}
然后当我像 http://myserver/services/sayHello2Me?name='baris' 那样从 Chrome 调用它时,它 return 告诉我那个错误:
Error 406: SRVE0295E: Error reported: 406
有一个 jsonobject 问题,因为如果我 return 在同一个网络服务中安装 jsonobject 的字符串,它 return 就成功了。
如何在 spring restful 网络服务中 return Jsonobject?
406-Not Acceptable Response
你应该使用 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();
}
你可以使用杰克逊:
@RequestMapping (value="/services/SayHello2Me" , method=RequestMethod.GET, produces="application/json")