我遇到了一个与在 Internet Explorer 中下载文件有关的尴尬问题。服务器环境如下:
- Apache2 作为带有 mod_jk 的 Web 服务器
- Tomcat6作为应用服务器
- Java/Spring 应用程序
这些文件由 Java Servlet 提供。当同时使用 Internet Explorer 从 2 个客户端请求某个文件时,会出现此问题。其中一个客户端无法获取整个文件,最终导致下载损坏。
我使用 Wireshark 查看入站数据。并且下载停止在 90k 文件中的 50k 处,来自服务器的 RELOAD(资源定位和发现框架)请求。
这只发生在 Internet Explorer 中。多次使用 Chrome/Firefox 尝试相同的场景。每次下载成功完成时,文件都可以正常工作。
我已经检查了应用程序和 Apache 日志。与此问题无关。通过调试级别的 mod_jk 日志。它记录了仅发送了 50k 的文件。但是在任何地方都没有记录任何错误。
下载 servlet 也是线程安全的,doPost() 方法中不使用类变量。
那么如何修复或追查这个问题的根源呢?
谢谢。