如何在 TcpInboundGateway 上捕获套接字异常?
How to catch socket exceptions on TcpInboundGateway?
我正在为 socket
客户使用 spring-integration
的 TcpInboundGateway
。
在TcpInboundGateway.doOnMessage()
中,流是通过套接字连接发送的。如果发生异常,例如因为套接字已关闭,则只有 spring 错误日志 "Failed to send reply"
.
但我想显式处理这些套接字错误。我怎样才能在所需的 class 中捕获这些错误?
我们可能应该更改它以传播异常,但这将是一种行为更改,因此我们可能必须仅在 4.2 中执行此操作,除非我们将其作为一个选项。
实际上,经过进一步审查;这无法容纳 - 您必须通过 connection exception event.
处理异常
发送是在入站线程上执行的,而不是您的发送线程。
我们可以增强异常事件以包括失败的出站消息。
编辑:
或者,使用一对 collaborating channel adapters 而不是入站网关。
这样,发送是在发送回复的线程上执行的,您可以捕获异常。
我正在为 socket
客户使用 spring-integration
的 TcpInboundGateway
。
在TcpInboundGateway.doOnMessage()
中,流是通过套接字连接发送的。如果发生异常,例如因为套接字已关闭,则只有 spring 错误日志 "Failed to send reply"
.
但我想显式处理这些套接字错误。我怎样才能在所需的 class 中捕获这些错误?
我们可能应该更改它以传播异常,但这将是一种行为更改,因此我们可能必须仅在 4.2 中执行此操作,除非我们将其作为一个选项。
实际上,经过进一步审查;这无法容纳 - 您必须通过 connection exception event.
处理异常发送是在入站线程上执行的,而不是您的发送线程。
我们可以增强异常事件以包括失败的出站消息。
编辑:
或者,使用一对 collaborating channel adapters 而不是入站网关。
这样,发送是在发送回复的线程上执行的,您可以捕获异常。