Return a stream with Spring MVC's ResponseEntity
나는 스프링 MVC 방식을 가지고 있습니다.ResponseEntity
. 검색된 특정 데이터에 따라 데이터 스트림을 사용자에게 반환해야 하는 경우가 있습니다.스트림이 아닌 다른 것을 반환하거나 리디렉션하는 경우도 있습니다.크기가 클 수 있기 때문에 바이트 배열이 아닌 스트림으로 했으면 합니다.
Currently, I return the stream using the following snippet of code:
HttpHeaders httpHeaders = createHttpHeaders();
IOUtils.copy(inputStream, httpServletResponse.getOutputStream());
return new ResponseEntity(httpHeaders, HttpStatus.OK);
불행히도 이것은 봄을 허락하지 않습니다.HttpHeaders
응답에서 HTTP 헤더를 실제로 채울 데이터입니다.내 코드가 다음 코드에 쓰기 때문에 이것은 말이 됩니다.OutputStream
봄이 오기 전에ResponseEntity
.
어떻게든 반환하면 매우 좋을 것입니다.ResponseEntity
의 소리와 함께InputStream
스프링이 처리하게 놔둬요또한 성공적으로 반환할 수 있는 제 기능의 다른 경로와 평행하게 됩니다.ResponseEntity
. 제가 스프링으로 이 일을 해낼 수 있는 방법이 없을까요?
또한, 저는 그 물건을 돌려주려고 노력했습니다.InputStream
에서ResponseEntity
봄이 받아들일지 보려고요
return new ResponseEntity(inputStream, httpHeaders, HttpStatus.OK);
But it throws this exception:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
나는 모든 것을 설정함으로써 내 기능을 작동시킬 수 있습니다.HttpServletResponse
직접적으로 그렇지만 저는 봄으로만 하고 싶습니다.
Spring's InputStreamResource works well. You need to set the Content-Length manually, or it appears that Spring attempts to read the stream to obtain the Content-Length.
InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
httpHeaders.setContentLength(contentLengthOfStream);
return new ResponseEntity(inputStreamResource, httpHeaders, HttpStatus.OK);
I never found any web pages suggesting using this class. I only guessed it because I noticed there were a few suggestions for using ByteArrayResource.
ReferenceURL : https://stackoverflow.com/questions/20333394/return-a-stream-with-spring-mvcs-responseentity
'programing' 카테고리의 다른 글
네임스페이스(, ) - 스키마 추출에 둘 이상의 테이블이 있습니다.예외. (0) | 2023.09.14 |
---|---|
마리아에서 선택문 내에 저장 프로시저를 호출할 수 있습니까?DB (0) | 2023.09.14 |
jQuery에서 'data-sort' 속성에 따라 div를 정렬하시겠습니까? (0) | 2023.09.14 |
JavaScript를 사용하여 XML 구문 분석 (0) | 2023.09.14 |
프로그래밍 방식으로 스프링 부트 응용 프로그램 다시 시작 / 스프링 컨텍스트 새로 고침 (0) | 2023.09.14 |