Próbuję zwrócić obraz w usłudze sieciowej JAX-RS. Udało mi się sprawnie zadziałać, zwracając FileInputStream
, ale wolałbym uniknąć tworzenia File
dla każdego żądania.Jak przesłać obraz jako strumień z JAX-RS?
Używam Apache CXF i Jackson (wszystkie inne metody zasobów tworzą aplikację/json).
Kod wygląda następująco:
@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();
}
Niestety, ten produkuje bał:
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor: 376 - No wiadomość ciało pisarz został znaleziono dla klasy odpowiedzi ByteArrayOutputStream.
Here's Link do podobnego wpisu, ale nie wspomina o problemie "Brak treści wiadomości", na który napotykam.
Byłbym wdzięczny za wszelkie pomysły dotyczące rozwiązania tego problemu. Dzięki!
Dlaczego nie zwrócić strumienia bezpośrednio, zamiast owijać go w odpowiedzi? –