Как перехватить исключения сокетов на TcpInboundGateway?
Я использую TcpInboundGateway
от spring-integration
для socket
клиент.
В TcpInboundGateway.doOnMessage()
поток отправляется через сокетное соединение. Если возникает исключение, например, из-за того, что сокет закрыт, существует просто журнал ошибок пружины. "Failed to send reply"
,
НО я хотел бы обработать эти ошибки сокета явным. Как я могу поймать эти ошибки в желаемом классе?
1 ответ
Возможно, нам следует изменить это для распространения исключения, но это будет изменение поведения, поэтому нам, вероятно, придется делать это только в 4.2, если мы не сделаем это опцией.
Собственно, после дальнейшего рассмотрения; это не может быть выполнено - вы должны обработать исключение через событие исключения соединения.
Отправка выполняется во входящем потоке, а не в потоке отправки.
Мы могли бы улучшить событие исключения, включив в него неудачное исходящее сообщение.
РЕДАКТИРОВАТЬ:
В качестве альтернативы используйте пару взаимодействующих канальных адаптеров вместо входящего шлюза.
Таким образом, отправка выполняется в потоке, который отправляет ответ, и вы можете перехватывать исключения.