これは私が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
はい私は3.1です。生産は機能しませんでした。私はまだ応答と同じエラーを取得しています。 – ed1t
jackson-jaxrsライブラリを含めて修正しました。 – ed1t