Java HttpServletResponse Пусто только в Firefox

У нас есть Java-сервлет, который создает HTML-страницы для просмотра пользователями. В 99,9% случаев эти страницы открываются в IE, Chrome, Firefox, Opera, Safari, и мы не тестируем другие браузеры, но они, вероятно, тоже работают.

Однако очень редко они не открываются в Firefox.

В Firebug это заголовки ответа, возвращаемые, когда он не работает:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 0
Date: Tue, 24 Jul 2012 04:57:32 GMT

Он по-прежнему будет работать в других браузерах на той же машине, но обновление ничего не меняет.

В HTTPServletResponse мы устанавливаем следующие заголовки:

rp.setHeader( "Content-Disposition", "example.html" );
rp.setContentType( "text/html" );

Мы также использовали для установки длины контента, но я вынул это в отчаянии. Когда мы установили длину контента, это было сделано так:

final long size = getSize();
if (size > 0) {
    rp.setHeader( "Content-Length", String.valueOf(size) );
}

и затем печать в HttpServletResponse выполняется следующим образом:

byte[]  ab = new byte[ 4096 ];
int     result = 0;

// Read from the BufferedOutputStream(buffer), and write to out(a ServletOutputStream).
while ( result != -1 ) {                
    result = buffer.read( ab, 0, 4096 );
    if ( result != -1 ) {
        if ( out == null ) {
            out = rp.getOutputStream();
        }
        out.write( ab, 0, result );
    }
}

Кто-нибудь сталкивался с чем-то подобным раньше? Это сводит меня с ума. Я не могу себе представить, что с кодом что-то не так, потому что он запускается сотни раз в день и очень редко дает сбой в Firefox, но, должно быть, с ним что-то не так, и я не могу понять, что за жизнь.

Извините, я не могу показать рабочий пример этой странности.

Спасибо

Эндрю

0 ответов

Другие вопросы по тегам