HTTP リクエストInputStream
に応答して返したいデータが無限にあります。GET
Web/API クライアントがそれを際限なく読み取れるようにします。どうすれば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();
}
}
};
}
しかし、コンテンツはクライアントには表示されません。ただし、 を追加するOutputStream#close()
と、サーバーはその瞬間にコンテンツを配信します。本当にストリーミング可能にするにはどうすればよいですか?