有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Tomcat 8.5识别新内容的时间太长

我有以下问题,我在^{中编写了一个Excel文件

我的Java应用程序一完成文件的编写,就会执行下载,供用户使用。这会产生一个严重的404错误

如果我等几秒钟,然后重新加载它下载的页面(或者在java中添加5秒睡眠,效果也一样)

所以,我的结论是,Tomcat花了5秒钟的时间来识别这个新的excel文件的存在,然后才能够为它提供服务

有没有办法让Tomcat更快地完成这项任务?也许在网络中使用一些配置。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) 个答案

  1. # 1 楼答案

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

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