- 締切済み
Javaのファイルダウンロードについて
Javaでファイルのダウンロード機能を作成しています。 環境はWebサーバにapache、APサーバにGlassfish、連携としてmod_jk、あとはJava6を使用しています。 InpusStreamでファイルパスから取得しresponse.getOutputStream()に書き込む処理writeにて org.apache.catalina.connector.ClientAbortExceptionが発生してしまいます。 その際にダウンロードのポップアップ(開く、保存、キャンセル)が開きますがExceptionが発生しているため保存できません。 ただしファイルのサイズによっては正常に保存できます。(ファイルサイズが500Mくらいだとダメ) なお、ClientAbortExceptionはキャンセル押したときに発生すると思われますがそのほかにどのような場合に発生するのでしょうか? また、対処方法を知っていましたらご教授ください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- teketon
- ベストアンサー率65% (141/215)
>ファイルの容量によってapacheやmod_jkが切断することはありえるのでしょうか? やったことがないので知りません。 単純なwrite処理だけだとflushしません。その場合、クライアントからデータが来ないように見えてしまい、 キャンセルしているのではないか?ということです。
- teketon
- ベストアンサー率65% (141/215)
>org.apache.catalina.connector.ClientAbortException:java.io.IOException: パイプが切断されました。 大きなファイルの送信に時間が掛かり、KeepAliveのTimeoutに到達、そして切断されているのではないでしょうか?
- teketon
- ベストアンサー率65% (141/215)
とりあえず、Exceptionのログを提示して下さい。
補足
org.apache.catalina.connector.ClientAbortException:java.io.IOException: パイプが切断されました。
補足
ファイルのサイズは500Mくらいで大きいですが実際にExceptionが発生するまでの時間は数秒です。 ファイルの容量によってapacheやmod_jkが切断することはありえるのでしょうか?