Tomcat偶尔会返回没有HTTP头的响应

Koh*_*aki 8 tomcat http java-metro-framework nginx chunked

我正在研究Tomcat(7.0.90 7.0.92)偶尔返回没有HTTP头的响应的问题.

根据Wireshark捕获的数据包,在Tomcat收到请求后,它只返回一个响应体.它既不返回状态行也不返回HTTP响应头.

它使下游Nginx实例产生错误"上游在从上游读取响应头时没有发送有效HTTP/1.0头",向客户端返回502错误并关闭Nginx和Tomcat之间的相应http连接.

这种行为可能是什么原因?是否有任何可能使Tomcat以这种方式行事?或者在某些情况下可能会出现剥离HTTP标头的内容?或Wireshark无法捕获包含HTTP标头的帧?任何建议缩小问题的范围也非常感谢.

这是Wireshark的"关注HTTP流"的屏幕截图,显示了有问题的响应:

在此输入图像描述

编辑:

这是相关部分(仅响应)的"TCP流"的屏幕截图.似乎从上一次的第二个响应中的块看起来很好:

在此输入图像描述

EDIT2:

我将此问题转发给Tomcat用户邮件列表,并从开发人员那里获得了一些进一步调查的建议:

http://tomcat.10.x6.nabble.com/Tomcat-occasionally-returns-a-response-without-HTTP-headers-td5080623.html

但我还没有找到任何适当的解决方案.我仍然在寻找解决这个问题的见解..

Koh*_*aki 0

事实证明,JAX-WS RI v2.1.3 使用的“sjsxp”库使 Tomcat 表现出这种行为。我尝试了不同版本的 JAX-WS RI (v2.1.7),它不再使用“sjsxp”库,它解决了问题。

Metro 邮件列表上发布了一个非常相似的问题:http ://metro.1045641.n5.nabble.com/JAX-WS-RI-2-1-5-returning-malformed-response-tp1063518.html