Sto tentando di restituire un'immagine in un servizio Web JAX-RS. Sono riuscito a farlo funzionare correttamente restituendo FileInputStream
ma preferirei evitare di creare un File
per ogni richiesta.Come restituire l'immagine come flusso da JAX-RS?
Sto usando Apache CXF e Jackson (tutti gli altri metodi di risorse producono l'applicazione/json).
codice simile a questo:
@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();
}
Purtroppo, questo produce la temuta:
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor: 376 - Nessun messaggio scrittore corpo è stato trovato per la classe di risposta ByteArrayOutputStream.
Here's un link ad un post simile, ma non menziona il problema "Nessun messaggio corpo scrittore" Io corro in.
Apprezzerei qualsiasi idea su come affrontare questo problema. Grazie!
Perché non restituire lo stream direttamente anziché avvolgerlo in una risposta? –