Я использую TcpInboundGateway
от spring-integration
для клиента socket
.Как уловить исключения на TcpInboundGateway?
В TcpInboundGateway.doOnMessage()
поток отправляется через соединение сокета. Если возникает исключение, например, потому что сокет закрыт, существует только журнал ошибок весны "Failed to send reply"
.
НО Я хотел бы обработать эти ошибки сокетов явным образом. Как я могу поймать эти ошибки в желаемом классе?
Используйте пользовательский 'TcpInboundGateway', расширяющий исходный и переопределяющий' doOnMessage', чтобы поставить 'try-catch' в? –
К сожалению, вы не можете этого сделать, потому что это частный метод. Вам придется переопределить 'onMessage()'. Но даже это не сработает, потому что вам нужен доступ к «соединениям» для поиска соединения, поэтому вам придется переопределить методы «TcpSender». –
Собственно, см. Мой (пересмотренный) ответ, нет смысла переопределять; это исключение возникает во входящем потоке, а не в ответном потоке. Поэтому вам нужно использовать механизм событий исключения, чтобы получить уведомление об ошибке. –