Possiedo un numero infinito di InputStream
con alcuni dati, che desidero restituire in risposta a una richiesta HTTP GET
. Voglio che il mio client web/API legga da esso all'infinito. Come posso farlo con JAX-RS? Sto provando questo:Come eseguire lo streaming di un InputStream infinito con 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();
}
}
};
}
Ma il contenuto non viene visualizzato per il client. Tuttavia, se aggiungo OutputStream#close()
, il server consegna il contenuto in quel preciso momento. Come posso renderlo veramente scorrevole?
ho usato solo per i file finiti, ma forse si potrebbe provare a produrre MediaType.APPLICATION_OCTET_STREAM – Thomas
provato che, nessun effetto :( – yegor256
Quale L'implementazione JAX-RS stai usando? – bdkosher