我们有一个运行在Tomcat 6上的Tapestry-Spring-Hibernate webapp,每秒处理大约1000个请求。随机地,没有明显的原因,页面仅在浏览器上显示一堆随机字符。但是,刷新页面后,它可以正常显示。这是Chrome上乱码页面的源代码的屏幕截图:

到目前为止,这是我发现的内容:

  • 似乎不是特定于浏览器的。我已经在Chrome和Firefox上见证了这一点,但用户也在IE 7及更高版本上进行了报道。
  • 服务器上的负载似乎与发生这种情况无关。
  • 刷新页面会正常显示页面,好像什么也没发生。
  • 我在服务器或应用程序日志中看不到任何相关内容
  • 页面的内容类型标记为<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
  • 在同一容器上还部署了其他两个Web应用程序,其中一个是Alfresco,但它们似乎根本没有表现出来。

  • 我的问题是,是否有人曾经遇到过这个问题,如果可以,他们可以指出我应该开始寻找的地方吗?这是页面内容类型不正确或服务器由于某种原因无法处理之类的问题吗?还是这可能是Tapestry或应用程序本身的框架错误?欢迎任何指针。在这一点上,我不确定问题出在哪里,所以我不确定这是发生在ServerFault还是留在这里。

    最佳答案

    它很可能是应用程序中的错误。 (尽管程序员很自然地倾向于责怪其他事情,但大多数错误都是...。)

    但是,要查找此问题可能有些棘手。我建议您从标准的东西开始:

  • 查看服务器错误日志,以查看这些“事件”之一发生时是否出现任何奇怪的情况。
  • 查看服务器访问日志,以查看是否可以识别生成垃圾数据的请求。
  • 启用浏览器的调试器,并查看是否可以通过这种方式跟踪错误的请求。

  • 如果您能弄清产生不良响应的请求是什么,则在寻找原因方面将有更多的吸引力。

    FWIW-看起来不像是字符编码问题的结果。那看起来更像是二进制或压缩数据。

    关于java - Tomcat上的Tapestry Web App偶尔会吐出垃圾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10720869/

    10-12 04:33