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用户邮件列表,并从开发人员那里获得了一些进一步调查的建议:
但我还没有找到任何适当的解决方案.我仍然在寻找解决这个问题的见解..
事实证明,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