Mam nieskończoną liczbę InputStream
z pewnymi danymi, które chcę zwrócić w odpowiedzi na żądanie HTTP GET
. Chcę, aby mój klient web/API odczytywał z niego bez końca. Jak mogę to zrobić z JAX-RS? Próbuję tego:Jak przesyłać strumieniowo nieskończony strumień wejściowy za pomocą JAX-RS
@GET
@Path("/stream")
@Produces(MediaType.TEXT_PLAIN)
public StreamingOutput stream() {
final InputStream input = // get it
return new StreamingOutput() {
@Override
public void write(OutputStream out) throws IOException {
while (true) {
out.write(input.read());
out.flush();
}
}
};
}
Ale treści nie pojawiają się dla klienta. Jeśli jednak dodaję OutputStream#close()
, serwer dostarcza treść w tym momencie. Jak mogę sprawić, by był naprawdę możliwy do przesłania?
znam go tylko dla plików skończonych, ale być może można spróbować produkcji MediaType.APPLICATION_OCTET_STREAM – Thomas
starał, że żadnego efektu :( – yegor256
Która Wdrożenie JAX-RS używasz? – bdkosher