2016-11-11 35 views
1

我有XML被送入REST控制器,我使用@RequestBody註釋將其轉換爲Java對象。除了Java對象中的一些特定元素外,我還需要將整個XML保存到數據庫列中。我明確地編組Java對象來完成這個,這似乎是重複的工作。除了使用@RequestBody註解的解析對象之外,是否還有辦法獲得原始XML?@RequestBody返回的Marshall對象

回答

0

是的,有。比方說,這是你的控制器方法:

public Response yourControllerMethod(@RequestBody YourDTO dto) { 

您@RequestBody參數類型簡單地更改爲字符串,你會得到的請求的原始體:

public Response yourControllerMethod(@RequestBody String rawPayload) { 

或者你甚至可以同時獲得:

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

獲得第二個@RequestBody註釋的錯誤。錯誤信息:無法讀取HTTP消息嵌套異常是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。 jar:4.2.4.RELEASE] \t at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:147)〜[spring-webmvc-4.2.4.RELEASE.jar –