Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(大量データのダウンロードが途中で消える。)
閲覧数:909
掲示板(大量データのダウンロードが途中で消える。)
名前
匿名
題名 大量データのダウンロードが途中で消える。
質問内容

質問を評価する
(0ポイント)
初めて書き込みさせていただきます。
いろいろ調べてみましたが、問題点がわからず、
質問させていただきます。

WEBアプリケーションを作成しており、
すでにお客様へリリースしておりますが、
Excelファイルをダウンロードするとき、
データ量が多いと、ダウンロード処理が
途中で消えてしまい、何事も無かったかのようになってしまいます。
ログにエラーなども出ません。

環境
サーバー:CentOS6.2
APサーバー:Jboss&Apache
      (Apacheを経由してJboss)
クライアントブラウザ:Google Chrome & IE9

Chrome、IE9の両方でこの現象が発生します。

ダウンロードのロジックは下記のようです。

public static void doDownloadWork(Map paraMap , HttpServletResponse response) throws IOException 
{
    try
    {
        FileManagerImpl rm = (FileManagerImpl) Component.getInstance(getString(paraMap,"cName"));
        byte[] file = rm.createFile(paraMap);
        if(file != null)
        {
            response.setContentType(rm.getContentType()); 
            response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(rm.getFileName(), "UTF-8"));
            response.getOutputStream().write(file);
        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

※データが少量の場合は、問題なく動きます。

※Chrome、IE9ともにダウンロード自体は開始されますが、それが途中でフッと消えてしまい、実際にファイルもダウンロードできない状態です。

お気づきの点などございましたら、お教えください。
質問日時 2013-01-07 16:01:10
名前
匿名
回答内容

回答を評価する
(0ポイント)
憶測で申し訳ないですが・・・
ファイルの全内容をbyte配列で持ち上げているのが気になります。
JBossのログにOutOfMemoryErrorが出ていたりしませんか?
回答日時 2013-01-07 18:51:12
名前
匿名
回答内容

回答を評価する
(0ポイント)
でかいデータは別スレッドを起こして、Stream to Streamで
やった方がいいね。
回答日時 2013-01-07 19:22:14

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道