我们的应用程序基于 Spring 框架构建,并且托管在 WAS 6.1 上。它是为 Internet Explorer 6 设计的(作为使用 IE 6 的用户)。它通过控制器通过 AJAX 通信打开一个 pdf 文件。在后台它调用一个 mq 来获取 byte[]。它写在响应的 bufferedOutputStream 中。
它在开发和测试环境中运行良好,但在生产环境中并不总是运行良好。它有时会打开,有时不会。(对于负载平衡,我们有超过 1 个服务器。)
有时请求查询字符串是在文件名中设置的,当尝试保存附件时,它会在弹出窗口中给出以下错误消息:
“互联网无法下载......来自 abc.com 的 URL 文件无法写入缓存”
PFB 代码:
byte[] letterByteArr = null;
letterByteArr = fetchFromMQ();
bufferedOutputStream = new BufferedOutputStream(response.getOutputStream());
response.reset();
response.setContentType(application/pdf);
response.setHeader(Content-disposition, attachment; filename=LP.pdf);
int length = letterByteArr.length;
response.setContentLength(length);
bufferedOutputStream.write(letterByteArr, 0, length);
bufferedOutputStream.flush();
类似的代码在另一个运行在不同 jvm 中的应用程序中运行良好。
如果在您的代码实施过程中遇到此问题,任何人都可以提出可能的解决方案吗?WAS、网络、IE 或 Abode 中可能存在的问题在哪里?