这里是我用JSON响应回应的方法。此代码的工作在GlassFish但是当我在Tomcat上运行,我得到一个错误7.0.27REST式JSON响应在tomcat上失败,但在GlassFish中工作
HTTP状态:406
该请求所标识的资源只能与按不可接受的特性产生响应的请求“接受”头()。
@RequestMapping(value = "/test", headers="Accept=application/json", method = RequestMethod.POST)
public @ResponseBody
Map<String, ? extends Object> getAuthPOST(@RequestBody String jsonBody) throws JSONException {
JSONObject j = new JSONObject(jsonBody);
System.out.println(j.keys());
Iterator i = j.keys();
Map<String, Object> result = new HashMap<String, Object>();
while (i.hasNext()) {
String key = (String) i.next();
result.put(String.valueOf(key), String.valueOf(j.getString(key)));
}
return result;
}
UPDATE:
这里有头时,我得到的请求回
HTTP/1.1 406无法接受 的Content-Length:1070 服务器:Apache-狼/ 1.1 内容 - 类型:text/html; charset = utf-8 Date:Wed,02 May 2012 15:47:24 GMT Connection:close
它将Content-Type更改为te XT/HTML。
这里是我的请求头:
POST /用SpringMVC /登录/测试HTTP/1.1 接受:应用/ JSON 内容类型:应用程序/ JSON
是的,我在3.1。产生不起作用。我仍然收到与回复相同的错误。 – ed1t
我通过包含jackson-jaxrs库来修复它。 – ed1t