我遇到以下问题,我在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);
wiriting工作正常,因为我在文件资源管理器中看到它已准备就绪,但如果我尝试通过URL打开它,我会得到相同的404。
答案 0 :(得分:2)
Resources
被缓存。重新验证缓存条目之间的时间量(以毫秒为单位)由this documentation中引用的cacheTtl
参数定义。默认情况下,其值为5秒。
如果要停用缓存,只需将cachingAllowed
设置为false
。