responseentity example error java spring servlets spring-mvc

java - example - spring response exception handler



Devuelve una secuencia con ResponseEntity de Spring MVC (1)

Spring''s InputStreamResource funciona bien. Necesita configurar el Content-Length manualmente, o parece que Spring intenta leer la secuencia para obtener Content-Length.

InputStreamResource inputStreamResource = new InputStreamResource(inputStream); httpHeaders.setContentLength(contentLengthOfStream); return new ResponseEntity(inputStreamResource, httpHeaders, HttpStatus.OK);

Nunca encontré ninguna página web que sugiera usar esta clase. Solo lo adiviné porque noté que había algunas sugerencias para usar ByteArrayResource.

Tengo un método Spring MVC que devuelve ResponseEntity . Dependiendo de los datos específicos recuperados, a veces es necesario devolver una secuencia de datos al usuario. Otras veces devolverá algo que no sea una transmisión, y a veces una redirección. Definitivamente quiero que esto sea una secuencia y no una matriz de bytes, ya que puede ser grande.

Actualmente, devuelvo la transmisión usando el siguiente fragmento de código:

HttpHeaders httpHeaders = createHttpHeaders(); IOUtils.copy(inputStream, httpServletResponse.getOutputStream()); return new ResponseEntity(httpHeaders, HttpStatus.OK);

Desafortunadamente, esto no permite que los datos de Spring HttpHeaders realmente los encabezados HTTP en la respuesta. Esto tiene sentido ya que mi código escribe en OutputStream antes de que Spring reciba ResponseEntity .

Sería muy agradable devolver una ResponseEntity con un InputStream y dejar que Spring lo maneje. También sería paralelo a los otros caminos de mi función donde puedo devolver satisfactoriamente una ResponseEntity . ¿De todos modos puedo lograr esto con Spring?

Además, intenté devolver el InputStream en ResponseEntity solo para ver si Spring lo aceptaría.

return new ResponseEntity(inputStream, httpHeaders, HttpStatus.OK);

Pero arroja esta excepción:

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

Puedo hacer funcionar mi función configurando todo en HttpServletResponse directamente, pero me gustaría hacer esto solo con Spring.