处理.JS文件的简单请求时,Tomcat响应挂起

时间:2014-03-24 22:19:19

标签: tomcat encoding tomcat7 mime-types mime

我的Tomcat 7服务器上有一个JavaScript文件。

但是,当我尝试通过HTTP GET检索文件时,响应会挂起并且不会将文件完全写入我的客户端。它将大约80%的文件写入我的客户端,然后响应似乎挂起。此时我在tomcat日志中找不到任何内容。

它似乎不是浏览器问题,它与wget,Chrome,Firefox和IE挂起。

如果我重命名文件扩展名以便检测为不同的MIME类型,则它可以正常下载(例如重命名为test.blah)。注意:.txt(普通/文本)也失败。

我注意到文件中可能有一些奇怪的字符编码:

iconv -f ascii -t ascii jquery.jqplot.js  > test
iconv: illegal input sequence at position 321379

我尝试过使用iconv查找并删除任何奇怪的字符,但无济于事。

iconv f ascii -t ascii//IGNORE jquery.jqplot.js  > test   #still does not work)

文件在这里:

http://www.tempsend.com/081FEAAA7F/D7C0/jquery.jqplot.js

  • 注意:如果我将web.xml中的“js”扩展名中的mime-mapping从“application / javascript”更改为“application / octet-stream”,则可以下载。

**更新:

我能够通过将文件直接放入webapps / ROOT /并尝试获取它来重现它。详细信息:RHELS 5.9 -tomcat 7.0.27以及7.0.52。

还注意到,仅当通过HTTP访问文件REMOTELY(它通过HTTPS或通过localhost工作)时才会发生这种情况。这让我觉得它可能是一些奇怪的内网防火墙问题。

1 个答案:

答案 0 :(得分:1)

这对我来说对于干净的Tomcat 7.0.53安装没有任何问题(使用RC,因为我写这篇文章时没有正式发布,因此使用了RC)。

我回忆起过去几年中与Tomcat和Javascript有关的唯一问题是用户代理没有识别mime类型。

我也用压缩检查了它,但它仍然有效。

因此,它很可能是您的应用程序正在做的事情。我建议查看过滤器和配置为提供javascript和/或静态资源的任何servlet。