Spring 3.0でRESTful Webサイトを作成しています。私はContentNegotiatingViewResolver
とHTTPメッセージコンバータ(JSONの場合はMappingJacksonHttpMessageConverter
、XMLの場合はMarshallingHttpMessageConverter
など)を使用しています。最後のURLで.xmlサフィックスを使用し、JSONの場合にURLの.jsonサフィックスを使用すると、XMLコンテンツを正常に取得できます。Spring REST ControllerでRequestBodyを使用したXML/JSON POST
コントローラからXML/JSONコンテンツを取得しても問題は発生しません。しかし、同じコントローラメソッドのリクエストボディでXML/JSONをどのようにPOSTできますか?
@RequestMapping(method=RequestMethod.POST, value="/addEmployee")
public ModelAndView addEmployee(@RequestBody Employee e) {
employeeDao.add(e);
return new ModelAndView(XML_VIEW_NAME, "object", e);
}
感謝」をすぐにこれを試してみてください:) –
Stoffer、私は道を試みた、あなたは答えている。しかし、私はどのような 要求のボディのコントローラメソッドにXML/JSONのコンテンツをPOSTしようとしました。私はそこから例外 を取得しています すなわち ** HTTPステータス400 - コンテンツタイプ「text/plainの;のcharset = UTF-8」** 私はContentNegotiatingViewResolverと のHttpメッセージ変換器の両方を使用していますので、それはありますがサポートされていません??この背後には何か他の理由があります。 –
Springのコンバーターは、特定のコンテンツタイプ(要求本体用)と受け入れ(応答用)を登録します。 jsonの場合は、 'application/json'などです。 XMLの場合、 'application/xml'やその他のものです。あなたのクライアントが 'content-type:application/json'と' accept:application/json'を送信し、それが動作することを確認してください。 –