Переривчаста нездатність доставити статичний вміст з tomcat

У мене є файл JavaScript (і бачив це з іншим статичним вмістом), який іноді не доставляється правильно tomcat, незважаючи на 200 відповідь. Я пробував серверні версії 6.0.18 і 6.0.33 з тим же результатом. Нижче наведено приклад результату, який я бачу, використовуючи wget для запиту одного й того ж елемента кілька разів, не соромтеся спробувати себе, якщо це допоможе:

--20:00:46-- http://t-pen.org/TPEN/transcription.js => `transcription.js.28' Resolving t-pen.org... 165.134.241.71 Connecting to t-pen.org|165.134.241.71|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified

(Немає типу MIME)

--20:01:06-- http://t-pen.org/TPEN/transcription.js => `transcription.js.29' Resolving t-pen.org... 165.134.241.71 Connecting to t-pen.org|165.134.241.71|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 97,373 (95K) [text/javascript]

Проблема в браузері - це повідомлення про те, що тип MIME для JavaScript є неправильним. Я не зіткнувся з конфігурацією типу mime в tomcat, і він приходить через правильний більшість разів, так що я дійсно не знаю, де я можу дивитися, щоб спробувати вирішити це. Будь-яка допомога дуже цінується.

curl output for problematic GET:

$ curl -v http://t-pen.org/TPEN/transcription.js > /dev/null
> GET /TPEN/transcription.js HTTP/1.1
> User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: t-pen.org
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Transfer-Encoding: chunked
< Date: Thu, 27 Oct 2011 20:43:55 GMT
< 
{ [data not shown]
100 97373    0 97373    0     0  86338      0 --:--:--  0:00:01 --:--:--  112k

і звичайний:

$ curl -v http://t-pen.org/TPEN/transcription.js > /dev/null
> GET /TPEN/transcription.js HTTP/1.1
> User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: t-pen.org
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< ETag: W/"97373-1319761050000"
< Last-Modified: Fri, 28 Oct 2011 00:17:30 GMT
< Content-Type: text/javascript
< Content-Length: 97373
< Date: Thu, 27 Oct 2011 20:45:21 GMT
< 
{ [data not shown]
100 97373  100 97373    0     0  86196      0  0:00:01  0:00:01 --:--:--  112k
1
Чи є у вас фільтр? Як виглядають ваші відображення сервлетів?
додано Автор palacsint, джерело
Я зробив деякі експерименти з curl і з'ясував, що деякі інші заголовки не надсилаються для фіктивних GET. Оскільки це не відповідь, але вона також не вписується в коментарі, я дозволяю собі змінювати ваше питання, сподіваюся, що ви не заперечуєте, і це допоможе.
додано Автор Tomasz Nurkiewicz, джерело
Я зробив деяке читання, засноване на chunked перенесення ви бачили, і я думаю, що я його звузив до бути унікальним для http/1.1 роз'єм. Якщо я використовую AJP я, здається, не в змозі отримати помилку. хворий продовжує тестування і дає відповідь, якщо виявиться так. Дякую!
додано Автор jdeerin1, джерело
palacsint У мене є 1 фільтр, хоча я намагався видалити його. Моє відображення сервлетів - це лише список імен сервлетів і URL-адрес, які впливають на JavaScript, наприклад:
додано Автор jdeerin1, джерело
URL-адреса в оригінальній публікації більше не буде працювати через роботу, яку ми використовуємо.
додано Автор jdeerin1, джерело

1 Відповіді

Наше вирішення цієї проблеми полягає в тому, щоб перемістити статичний вміст у місце, яке обслуговує apache, а потім використовувати AJP через apache, а не прямі запити до tomcat, оскільки AJP-запит обслуговується роз'ємом AJP, а не HTTP/1.1 роз'ємом, що викликає наш неприємності. Це не повністю пояснює причину проблеми, але саме так ми працюємо навколо нього.

1
додано