Получение следующего сообщения при открытии PDF "Интернет не может загрузить ...... XYZ с abc.com Файл не может быть записан в кэш" в IE? - PullRequest
1 голос
/ 15 сентября 2011

Наше приложение построено на платформе Spring и размещено на WAS 6.1. Он был разработан для Internet Explorer 6 (как пользователи, использующие IE 6). Он открывает файл PDF через AJAX-связь через контроллер. В фоновом режиме он вызывает mq для извлечения байта []. Он записывается в bufferedOutputStream ответа.

Он отлично работает в среде разработки и тестирования, но в производственной среде работает не всегда нормально. Иногда оно открывается, иногда нет. (Для балансировки нагрузки у нас более 1 сервера.)

Иногда строка запроса запроса задается в имени файла, и при попытке сохранить вложение во всплывающем окне выдается следующее сообщение об ошибке:

"Интернет не может загрузить ...... URL-адрес с abc.com Файл не может быть записан в кэш"

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?

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Это звучит так же, как http://support.microsoft.com/kb/812935. Проблема в том, что IE6 не будет загружать файл PDF, когда он подается по HTTPS вместо HTTP, в то время как заголовки Cache-Control и / или Pragma установлены на no-cache.

Добавьте следующие заголовки ответа:

response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");
0 голосов
/ 30 июля 2012

Я столкнулся с той же проблемой, и я добавил заголовки ответа, чтобы решить эту проблему. Но мне пришлось убрать response.reset();; только после этого проблема с загрузкой не возникает.

Я не знаю причину этого, но она работает.

Проблема только в том, что данные Excel отличаются от данных в файле PDF в моем приложении.

...