Tomcatから静的コンテンツを配信する断続的な失敗

私は200の応答にもかかわらず、Tomcatによって正しく配信されないことがあるjavascriptファイルを持っています(これを他の静的コンテンツと見てきました)。私は、サーバーバージョン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]

ブラウザの問題は、javascriptのMIMEタイプが正しくないことを示すメッセージです。私はtomcatのMIMEタイプの設定に悩まされていないので、ほとんどの時間通り正しく来るので、私はこれを解決しようとすることができる場所を知りません。どんな助けでも大歓迎です。

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,
私はあなたが見ていたチャンクされた転送に基づいていくつかの読書をしました、そして、私はそれがhttp/1.1コネクターにユニークであることに絞り込んだと思います。私がAJPを使用すると、エラーを受け取ることができないようです。病気をテストして、それが事実であることが判明した場合はそれを答えてください。ありがとう!
追加された 著者 jdeerin1,
palacsint私はそれを取り除こうとしたが、私は1つのフィルタがあります。私のサーブレットのマッピングは、 processImage /processImage のように、javascriptに影響を与えるサーブレットの名前とURLのリストに過ぎません。
追加された 著者 jdeerin1,
元の投稿のURLは、私たちが使用している作業のためにもう機能しません。
追加された 著者 jdeerin1,

1 答え

この問題を解決するには、静的コンテンツをapacheが提供する場所に移動し、tomcatへの直接リクエストではなく、Apacheを介してAJPを使用します.AJPリクエストは、HTTP/1.1コネクタではなくAJPコネクタによって処理されるためです。トラブル。これは問題の原因を完全には説明しませんが、これが私たちがその問題を回避する方法です。

1
追加された