Опрос на HttpOutboundGateway - PullRequest
       16

Опрос на HttpOutboundGateway

0 голосов
/ 16 марта 2019
@Bean
public HttpMessageHandlerSpec documentumPolledInbound() {
    return Http
        .outboundGateway("/fintegration/getReadyForReimInvoices/Cz", restTemplate)
        .expectedResponseType(String.class)
        .errorHandler(new DefaultResponseErrorHandler())
        ; 
}

Как опрашивать вышеперечисленное, чтобы получить полезную нагрузку для дальнейшей обработки

1 Ответ

2 голосов
/ 16 марта 2019

Конечная точка HTTP-клиента не запрашивается, а управляется событиями. Так, как вы, например, обычно вызываете REST Service из curl, здесь происходит то же самое. Я полагаю, у вас есть .handle() для этого documentumPolledInbound(), и есть какой-то канал сообщений для отправки сообщения, чтобы эта конечная точка вызывала вашу службу REST.

Не ясно, как вы собираетесь обрабатывать ответ, но есть способ ралли периодически вызывать событие для вызова этой конечной точки.

Для этой цели мы можем только * смоделировать * адаптер входящего канала, который может быть настроен с некоторой политикой триггера:

@Bean
public IntegrationFlow httpPollingFlow() {    
    return IntegrationFlows
                    .from(() -> "", e -> e.poller(p -> p.fixedDelay(10, TimeUnit.SECONDS)))
                    .handle(documentumPolledInbound())
                    .get();
}

Таким образом, мы собираемся отправить сообщение с пустой строкой в ​​качестве полезной нагрузки на канал для handle(). И мы делаем это каждые 10 секунд.

Поскольку ваш HttpMessageHandlerSpec не заботится о входящей полезной нагрузке, на самом деле не имеет значения, что мы возвращаем из MessageSource в адаптере канала опроса.

...