私は以下の問題があります。私はC:\Tomcat85\webapps\MyWebApp\Excel\myExcel.xls
にExcelファイルを書きます。Tomcat 8.5が新しいコンテンツを認識するのに時間がかかります
Javaアプリケーションがファイルの書き込みを終了するとすぐに、ユーザーがそれを使用するためのダウンロードを実行します。これにより404エラーが発生します。
私が数秒待ってページをリロードすると、すべてのダウンロードが正常に行われます(または、javaで5秒のスリープを追加すると、同じように動作します)。
私が結論づけているのは、この新しいExcelファイルが存在することをTomcatが認識して5秒後に提供できるということです。
Tomcatがこのタスクをより高速に実行できるようにする方法はありますか?たぶん、web.xml内のいくつかの設定を使って、 "/ Excel /"フォルダを別の方法で扱います。
Windows 10 64ビット、Tomcat 8.5、Java 7(java8を試してみることもできますが、違いはないと思います)
いくつかのコード:
new ExcelExport(remoteHandle, context).execute(outFileName, outMessage);
// Thread.sleep(5000);
httpContext.wjLoc = formatLink(outFileName);
- 睡眠はテストに応じて、コメントやコメントを外しています。睡眠から、私は404を得て、5秒で睡眠はうまくいきます。
- httpContet.wjLocは、ファイルへのリンクとしてダウンロードを実行するだけです。私は、ファイルエクスプローラで、それは準備と書き込み可能な参照として
wiritingは、正常に動作しているが、私はURLでそれを開こうとする場合、私はデフォルトでキャッシュされているのと同じ404
サンプルコードを投稿できますか?遅延を引き起こすあなたのコードにいくつかのリークがあるかもしれません。 –
ちょっとしたコードを追加しました。あなたの興味に感謝します。 –