Onderbroken fout bij het afleveren van statische inhoud van tomcat

Ik heb een javascript-bestand (en heb dit gezien met andere statische inhoud) dat soms niet correct wordt afgeleverd door tomcat, ondanks een antwoord van 200. Ik heb de serverversies 6.0.18 en 6.0.33 geprobeerd met hetzelfde resultaat. Hieronder ziet u een voorbeeld van het resultaat. Ik zie het gebruik van wget om hetzelfde item meerdere keren aan te vragen, probeer het gerust als dat helpt:

--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

(Zie geen mime-type)

--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]

Het probleem in de browser is een bericht waarin staat dat het mime-type voor de JavaScript onjuist is. Ik heb de configuratie van het mime-type in tomcat niet verprutst en het komt de meeste keren correct door, dus ik weet echt niet waar ik kan kijken om dit op te lossen. Alle hulp wordt zeer op prijs gesteld.

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

en normale:

$ 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
Heb je een filter? Hoe zien uw servlet-toewijzingen er uit?
toegevoegd de auteur palacsint, de bron
Ik heb wat geëxperimenteerd met curl en ontdek dat er weinig andere headers worden verzonden voor nep-GET's. Aangezien dit geen antwoord is, maar het ook niet paste in de opmerking, liet ik mezelf je vraag aanpassen, hoop dat je het niet erg vindt en het zal helpen.
toegevoegd de auteur Tomasz Nurkiewicz, de bron
Ik heb wat gelezen op basis van de gesplitste overdracht die je zag en ik denk dat ik het heb beperkt tot uniek te zijn voor de http/1.1-connector. Als ik AJP gebruik, lijkt het erop dat ik de fout niet kan krijgen. blijf testen en maak dat een antwoord als het het geval blijkt te zijn. Bedankt!
toegevoegd de auteur jdeerin1, de bron
palacsint Ik heb 1 filter, hoewel ik heb geprobeerd het te verwijderen. Mijn servlet-toewijzing is slechts een lijst met servletnamen en URL's die van invloed zijn op het javascript, zoals: processImage /processImage
toegevoegd de auteur jdeerin1, de bron
De URL in de originele post zal niet langer werken vanwege het werk dat we gebruiken.
toegevoegd de auteur jdeerin1, de bron

1 antwoord

Onze oplossing voor het probleem is het verplaatsen van statische inhoud naar een locatie die wordt beheerd door apache en vervolgens AJP gebruiken via apache in plaats van directe aanvragen voor tomcat, omdat de AJP-aanvragen worden onderhouden door de AJP-connector in plaats van de HTTP/1.1-connector die onze oorzaak is problemen. Dit verklaart niet volledig de oorzaak van het probleem, maar dit is hoe we er omheen werken.

1
toegevoegd