Как перехватить исключения сокетов на TcpInboundGateway?

Я использую TcpInboundGateway от spring-integration для socket клиент.

В TcpInboundGateway.doOnMessage() поток отправляется через сокетное соединение. Если возникает исключение, например, из-за того, что сокет закрыт, существует просто журнал ошибок пружины. "Failed to send reply",

НО я хотел бы обработать эти ошибки сокета явным. Как я могу поймать эти ошибки в желаемом классе?

1 ответ

Решение

Возможно, нам следует изменить это для распространения исключения, но это будет изменение поведения, поэтому нам, вероятно, придется делать это только в 4.2, если мы не сделаем это опцией.

Собственно, после дальнейшего рассмотрения; это не может быть выполнено - вы должны обработать исключение через событие исключения соединения.

Отправка выполняется во входящем потоке, а не в потоке отправки.

Мы могли бы улучшить событие исключения, включив в него неудачное исходящее сообщение.

РЕДАКТИРОВАТЬ:

В качестве альтернативы используйте пару взаимодействующих канальных адаптеров вместо входящего шлюза.

Таким образом, отправка выполняется в потоке, который отправляет ответ, и вы можете перехватывать исключения.

Другие вопросы по тегам