2011-10-27 42 views
1

提供静态内容我有一个JavaScript文件(并且已经看到了这一点与其他静态内容),它有时没有被正确的tomcat的交付,尽管200的响应。我已经尝试了服务器版本6.0.18和6.0.33,结果相同。下面是我看到使用wget多次请求同一项目的结果示例,如果有帮助,请随时尝试自己:间歇性故障,以从Tomcat

--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 长度:未指定的

(参见无MIME类型)

--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 长度:97373(95K)的文本/ 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 
+0

我对'curl'做了一些尝试,发现其他头文件不会发送给伪造的GETs。由于这不是一个答案,但它也不适合评论我让我自己修改你的问题,希望你不介意,它会有所帮助。 –

+0

你有任何过滤器?你的servlet映射怎么样? – palacsint

+0

我根据你看到的分块传输做了一些阅读,我认为我已经缩小到http/1.1连接器的独特性。如果我使用AJP,我似乎无法获得错误。如果事实证明是这样,那么就不要继续测试并做出答案。谢谢! – jdeerin1

回答

1

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