Tomcat 8.5需要很长时间才能识别新内容

时间:2017-06-30 18:04:05

标签: java tomcat caching static-content tomcat8.5

我遇到以下问题,我在C:\Tomcat85\webapps\MyWebApp\Excel\myExcel.xls中编写了一个Excel文件。

一旦我的Java应用程序完成文件的编写,它就会为用户执行下载以使用它。这给出了一个令人讨厌的404错误。

如果我等待几秒钟并重新加载页面,它就可以正常下载(或者在java中添加5秒钟,它的工作原理相同)。

所以,我得出的结论是,Tomcat花了5秒时间识别出这个新的excel文件存在,然后就可以提供它了。

有没有让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。

1 个答案:

答案 0 :(得分:2)

默认情况下,

Resources被缓存。重新验证缓存条目之间的时间量(以毫秒为单位)由this documentation中引用的cacheTtl参数定义。默认情况下,其值为5秒。

如果要停用缓存,只需将cachingAllowed设置为false