【发布时间】:2012-11-02 13:02:43
【问题描述】:
我有一个 CXF 生成的客户端,它成功调用了 Web 服务并接收到响应,但是客户端坐下来等待,并且在读取超时到期之前不会断开连接。
使用wireshark我发现服务器发送一个TCP FIN数据包并返回一个ACK然后断开连接,但是我的客户端然后发送它的FIN数据包并坐下来等待一个永远不会到来的ACK响应。
有没有办法配置 cxf 客户端来处理这种情况?
我已经使用 .NET 客户端对此进行了测试,它似乎无需等待即可处理它。
非常感谢
【问题讨论】:
-
我怀疑这与 CXF 本身有关,更多关于如何创建套接字。
-
请发布连接关闭的 WireShark 转储。
-
也许服务器上或中间的某些防火墙正在中止连接,然后静默丢弃所有数据包以获取“未建立”连接。服务器应位于
FIN_WAIT_2中,从而响应您的客户端。 en.wikipedia.org/w/… -
感谢您的回复,但我不认为这是防火墙问题,我可以通过在我的本地机器上托管他们的测试工具来重现该问题,并且它具有相同的行为
-
嗨,Brian,对不起,我不确定如何导出 Wireshark 的跟踪信息。它的 ssl 加密但收到的最后一个数据包信息是“加密警报”,并且设置的标志是(FIN、PSH、ACK)。然后我发送一个“alphatech-lm > https [ACK]”,然后是带有标志(ACK)的“加密警报”,然后是一个 alphatech-lm > https [FIN, ACK]。这是超时的时候
标签: java networking tcp cxf mule