estoy tratando de devolver una imagen en un servicio web JAX-RS. Yo era capaz de conseguir este funcionamiento con éxito mediante la devolución de FileInputStream
pero preferiría evitar la creación de un File
para cada solicitud.¿Cómo devolver la imagen como una transmisión desde JAX-RS?
estoy usando Apache CXF y Jackson (todos los demás métodos de recursos producen application/json).
código es el siguiente:
@GET
@Produces("image/png")
public Response getQrCode(@QueryParam("qrtext") String qrtext) {
ByteArrayOutputStream out = QRCode.from(qrtext).to(ImageType.PNG).stream();
return Response.ok(out).build();
}
Desafortunadamente, esto produce la temida:
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor: 376 - Ningún mensaje escritor cuerpo ha sido encontrado para la clase de respuesta ByteArrayOutputStream.
Here's un enlace a una publicación similar pero no menciona el problema "No hay mensaje de cuerpo del mensaje" con el que me estoy encontrando.
lo agradecería cualquier idea de cómo hacer frente a este problema. ¡Gracias!
Por qué no vuelve la corriente directamente en lugar de envolverlo en una respuesta? –