2016-11-11 1 views
1

XML을 REST 컨트롤러에 입력하고 @RequestBody 주석을 사용하여이를 Java 객체로 변환합니다. Java Object의 특정 요소 외에도 전체 XML을 데이터베이스 열에 저장해야합니다. 나는 이것을 달성하기 위해 자바 객체를 명시 적으로 마샬링하고 있으며 이것은 중복 된 작업으로 보인다. @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 주석에 오류가 발생합니다. 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. 병 : 4.2.4.RELEASE] org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters에서 \t (RequestResponseBodyMethodProcessor.java:147) ~ [스프링 webmvc-4.2.4.RELEASE.jar –