【发布时间】:2017-12-04 18:29:43
【问题描述】:
我有以下问题,我在C:\Tomcat85\webapps\MyWebApp\Excel\myExcel.xls写了一个Excel文件。
一旦我的 Java 应用程序完成了文件的写入,它就会执行下载以供用户使用。这会产生令人讨厌的 404 错误。
如果我等待几秒钟并重新加载它下载的页面(或在 java 中添加五秒钟的睡眠,它的工作原理相同)。
所以,我得出的结论是,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);
- sleep 被注释或取消注释取决于测试。没有睡眠,我得到 404,在 5 秒内睡眠它工作正常。
- httpContet.wjLoc 只是执行下载,作为文件的链接。
写入工作正常,因为我在文件资源管理器中看到它已准备好并可写入,但如果我尝试通过 URL 打开它,我会得到相同的 404。
【问题讨论】:
-
你能发布一些示例代码吗?您的代码中可能存在一些泄漏导致延迟
-
刚刚添加了一些代码,希望对您有所帮助!感谢您的关注。
标签: java tomcat caching static-content tomcat8.5