2012-05-02 9 views
1

これは私がJSONレスポンスで返信する方法です。このコードは、GlassFishの上で動作しますが、私はTomcat上で実行したとき、私はエラーを取得しています7.0.27RESTfulな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:1070 サーバー:Apacheの-コヨーテ/ 1.1 たContent私は戻って

HTTP/1.1 406許容できない のContent-Lengthを要求を得るときここ

は、ヘッダーですタイプ:text/html; charset = utf-8 日付:2012年5月2日水曜日15:47:24 GMT 接続:閉じる

これは、Content-Typeをteに変更します。 xt/html。ここで

は、私のリクエストヘッダは以下のとおりです。

POST/SpringMVC /ログイン/テストHTTP/1.1 受け入れ:アプリケーション/ JSON のContent-Typeを:アプリケーション/ JSON

答えて

0

あなたはどのバージョンのを言及していませんspring-mvcを使用していますが、3.1の場合は@RequestMappingに "produce"パラメータを追加できます。 produces="application/json"

+0

はい私は3.1です。生産は機能しませんでした。私はまだ応答と同じエラーを取得しています。 – ed1t

+0

jackson-jaxrsライブラリを含めて修正しました。 – ed1t

関連する問題