Канал ошибки Spring Integration в шлюзах - PullRequest
0 голосов
/ 20 марта 2019

У меня есть контроллер покоя, который вызовет мой метод шлюза

<int:gateway id="bGatewayService"
        service-interface="nd.l.eai.gw.BGateway"
        default-reply-channel="dest-channel"
        default-request-timeout="5000" default-reply-timeout="5000">        
        <int:method name="m1" request-channel="atbInChannel"/>
        <int:method name="m2" request-channel="btuInChannel"/>
    </int:gateway>

приложение работает нормально. У меня нет канала ошибок [как вы видите выше]

Мой вопрос - в чем преимущество канала ошибок, так как я получаю 500 или плохой запрос без него. Должен ли я создать канал ошибок и включить в вышеупомянутый?

Также я использую канал ответа по умолчанию, это нормально? или я должен добавить канал ответа для каждого метода? У меня есть другой шлюз, который имеет 10 методов.

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Вам не нужно error-channel, если у вас не будет потока компенсации . Если вы просто сгенерируете исключение, как в вашем случае, то не настраивайте error-channel.

В большинстве случаев нам также не нужна reply-channel, даже эта default-reply-channel. Если вы не используете output-channel в последней конечной точке вашего потока, будет использоваться заголовок replyChannel. reply-channel нам нужен только для тех случаев, когда нам нужна какая-то обработка ответного сообщения pub-sub, когда мы хотим отправить ответное сообщение не только как возврат для вызова метода шлюза, но и в какой-то другой поток.

Больше информации в Документах: https://docs.spring.io/spring-integration/docs/current/reference/html/#gateway

1 голос
/ 20 марта 2019

Это зависит от того, что вы хотите сделать;канал ошибок позволяет анализировать ошибку и возвращать различные результаты на основе исключения.

Например, вы можете попросить их повторить попытку для временной ошибки или сообщить о проблеме для фатальной ошибки в запросе.

Канал ответа, как правило, не нужен, если только вы не хотите что-то сделать, например, добавить проводное нажатие для регистрации ответа.Фактически этот канал в конечном итоге соединяется с заголовком responseChannel в запросе (именно так шлюз соотносит запросы / ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...