从tomcat传递静态内容的间歇性失败

时间:2011-10-27 20:13:21

标签: http tomcat

我有一个javascript文件(并且已经看到了其他静态内容),尽管有200个响应,但tomcat有时无法正确传递它。我尝试过服务器版本6.0.18和6.0.33,结果相同。下面是我看到使用wget多次请求相同项目的结果示例,如果有帮助,请随时尝试自己:

- 20:00:46-- http://t-pen.org/TPEN/transcription.js            => `transcription.js.28' 解析t-pen.org ... 165.134.241.71 连接到t-pen.org | 165.134.241.71 |:80 ...已连接。 发送HTTP请求,等待响应... 200 OK 长度:未指定

(参见没有哑剧类型)

- 20:01:06-- http://t-pen.org/TPEN/transcription.js            => `transcription.js.29' 解析t-pen.org ... 165.134.241.71 连接到t-pen.org | 165.134.241.71 |:80 ...已连接。 发送HTTP请求,等待响应... 200 OK 长度:97,373(95K)[text / javascript]

浏览器中的问题是一条消息,指出javascript的mime类型不正确。我没有搞乱tomcat中的mime类型配置,并且它大多数时候都是正确的,所以我真的不知道在哪里可以尝试解决这个问题。非常感谢任何帮助。

curl输出有问题的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 个答案:

答案 0 :(得分:1)

我们解决这个问题的方法是将静态内容移动到apache服务的位置,然后通过apache使用AJP而不是直接请求tomcat,因为AJP请求由AJP连接器而不是HTTP / 1.1连接器提供服务。造成我们的麻烦。这并没有完全解释问题的原因,但这就是我们如何解决它。