application/zip
HTTP Content-Type を " " に、Content-Disposition を " attachment
" に設定し、応答のOutputStream
;に書き込むことでファイルを送信するサーブレットがあります。ローカル アプリケーション サーバーに展開すると正しく動作し、ブラウザにファイルをダウンロードするかどうかを選択するポップアップが表示されます。
ただし、クラスター化された jboss サーバーにデプロイする場合、IE は転送全体のファイル情報を要求して 0% でハングし、ファイルをダウンロードできないというエラー メッセージで失敗します。サーブレットは正しく動作します。つまり、localhost と同じように動作します。
手がかりはありますか?
サーブレット コードの重要な部分の小さなスニペットも提供できます。
response.setContentType("application/zip; name=" + f.getName());
response.setContentLength((int)f.length());
response.addHeader("Content-Disposition", "attachment;filename=" + f.getName());
byte[] buf = new byte[1024];
int bytesRead;
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
OutputStream os = response.getOutputStream();
while((bytesRead = bis.read(buf)) != -1) {
os.write(buf, 0, bytesRead);
}
os.flush();
bis.close();
問題がサーブレット コードにあるのか、クラスター化されたサーバー構成にあるのかはよくわかりませんが、2 番目のチャンスが正しい可能性があると推測し始めています...私のクラスター構成で何が問題なのかについてのアイデアがあれば教えてください。 ?