如何在TcpInboundGateway上捕获套接字异常?

时间:2015-06-16 16:45:57

标签: java spring sockets spring-integration

我使用TcpInboundGateway中的spring-integration作为socket客户。

TcpInboundGateway.doOnMessage()中,流通过套接字连接发送。如果发生异常,例如因为套接字已关闭,则只有弹出错误日志"Failed to send reply"

但我想明确处理这些套接字错误。我怎么能在所需的课程中发现这些错误?

1 个答案:

答案 0 :(得分:2)

我们应该改变它来传播异常,但这会改变行为,所以我们可能只需要在4.2中进行,除非我们选择它。 < / p>

实际上,经过进一步审查;这不能容纳 - 您必须通过connection exception event来处理异常。

发送是在入站线程上执行的,而不是您的发送线程。

我们可以增强异常事件以包含失败的出站消息。

修改

或者,使用一对collaborating channel adapters代替入站网关。

这样,发送将在发送回复的线程上执行,您可以捕获异常。