2016-11-11 56 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 –