ヘルプが必要です。エラー:JavaではIllegalStateExceptionが発生します。応答がコミットされた後に転送できません
私はJava Servletでファイルをダウンロードしようとしていますが、ファイルのダウンロード後にページへのリクエストを送信できません。
ファイルが正常にダウンロードされ、ページにリクエストを転送しようとするとillegalStateExceptionが発生します。ここ
は、私は、サーブレットからこのメソッドを呼び出したコード
public void fileDownload(String stringFileToDownload, HttpServletResponse response) throws Exception{
FileInputStream inStream = null;
OutputStream outStream = null;
try{
File downloadFile = new File(stringFileToDownload); //Reads input file
inStream = new FileInputStream(downloadFile);
response.setContentType("application/zip-compressed"); //MIME type of the file
response.setContentLength((int) downloadFile.length());
response.setHeader("Content-Disposition", "attachment; filename=Time.zip");
//response's output stream
outStream = response.getOutputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
}
catch(Exception ex){
throw ex;
}
finally{
//response.flushBuffer();
try{
if(inStream != null){
inStream.close();
}
if(outStream != null){
//outStream.flush();
outStream.close();
}
}
catch(Exception ex){
throw ex;
}
}
}
です。あなたがコミットされる出力ストリーム応答(outStream.write(buffer, 0, bytesRead);
)に書き込むときに)request.forwardを(使用しようとすると、それがする。ここで
FileDownloadFromWeb fileDownloadFromWeb = new FileDownloadFromWeb();
fileDownloadFromWeb.fileDownload(stringarchiveFile, response); //Allow to download
Request Dispatcher objRequestDispatcher = request.getRequestDispatcher(objProperties.getProperty("SUCCESS_DOWNLOAD"));
objRequestDispatcher.forward(request, response);
呼び出しコードを表示してください。 –
メッセージはリダイレクトしようとしましたが、前に出力を書きましたが、許可されていません。 –
は書き込みアクティビティを実行していません。ここに呼び出しコードがあります。 'FileDownloadFromWeb fileDownloadFromWeb = new FileDownloadFromWeb(); fileDownloadFromWeb.fileDownload(stringarchiveFile、response); //ダウンロードを許可 //要求ディスパッチャ objRequestDispatcher = request.getRequestDispatcher(objProperties.getProperty( "SUCCESS_DOWNLOAD")); objRequestDispatcher.forward(リクエスト、レスポンス); ' – Bhat