Apache 非同期クライアントを使用して http 応答を読んでいます。データのチャンクを読み取るたびに、ノンブロッキング モードでサーブレット出力ストリームに書き込みたいと考えています。このようなもの:
// decoder.read is executed when data available for reading
while (decoder.read(this.bbuf) > 0)
{
this.bbuf.flip();
arr = new byte[numbytesread];
this.bbuf.rewind();
this.bbuf.get(arr);
// Blocking write to servletoutputstream 'sos'
this.sos.write(arr);
this.bbuf.compact();
}
'sos' を WritableChannel にラップしても、明らかにこれは機能しません。
したがって、nio モードに切り替えるには、WriteListener を servletoutputstream に追加する必要がありますが、解決できない問題が発生します。http コールバックから writelistener にデータのすべてのチャンクを渡して、非同期および非ブロッキングで動作させるにはどうすればよいですか?
これは可能ですか?もしそうなら、誰かがそれを行う方法についての手がかりを教えてもらえますか?