2016-11-11 5 views
1

XMLがRESTコントローラに供給されており、@RequestBodyアノテーションを使用してそのオブジェクトをJavaオブジェクトに変換しています。 Javaオブジェクトの特定の要素に加えてXML全体をデータベース列に保存する必要があります。私はこれを達成するためにJavaオブジェクトを明示的にマーシャリングしており、それは重複しているようです。 @RequestBodyアノテーションを使用している間に解析されたオブジェクトに加えて生のXMLを取得する方法はありますか?@RequestBodyによって返されたMarshallオブジェクト

答えて

0

はい、あります。

public Response yourControllerMethod(@RequestBody YourDTO dto) { 

だけでStringにご@RequestBodyパラメータの種類を変更して、要求の生の身体得るでしょう:

public Response yourControllerMethod(@RequestBody String rawPayload) { 

するか、あなたも、両方を得ることができるのは、これはあなたのコントローラのメソッドであるとしましょう:

public Response yourControllerMethod(@RequestBody YourDTO dto, @RequestBody String rawPayload) { 
+0

2番目の@RequestBodyアノテーションでエラーを取得します。 w.s.m.s.DefaultHandlerExceptionResolver:HTTPメッセージの読み込みに失敗しました:org.springframework.http.converter.HttpMessageNotReadableException:ドキュメントを読み込めませんでした:ストリームが閉じました。ネストされた例外はjava.io.IOExceptionです:ストリームが閉じた –

+0

これはスタックトレース全体ですか?そして、どのバージョンのSpring Bootを使用していますか? – jannis

+0

org.springframework.http.converter.HttpMessageNotReadableException:ドキュメントを読み取れませんでした:ストリームが閉じました。ネストされた例外はjava.io.IOExceptionです。ストリームを閉じた \t at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:227)〜[spring-webmvc-4.2.4.RELEASE。ジャー:org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:147)〜[ばねwebmvc-4.2.4.RELEASE.jar –

関連する問題