2012-05-02 44 views
1

这里是我用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

回答

0

你没有提到的是哪个版本你使用的是spring-mvc,但是如果你使用的是3.1,你可以在你的@RequestMapping中添加“produce”参数。 produces="application/json"

+0

是的,我在3.1。产生不起作用。我仍然收到与回复相同的错误。 – ed1t

+0

我通过包含jackson-jaxrs库来修复它。 – ed1t

相关问题