Можно ли поместить контекстные данные в ExchangeFilterFunctions?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли поместить контекстные данные в ExchangeFilterFunctions?

Сообщение Anonymous »

Я начал изучать реактивный http-клиент Spring, и у меня возникли проблемы с пониманием контекстной информации между запросами и ответами. При использовании RestTemplate это было легко сделать с помощью локальных значений потока.
Я хочу реализовать универсальный веб-клиент, который автоматически добавляет идентификатор вызова в журналы запросов и ответов, поэтому я попробовал что-то вроде этого что выдает ошибку, поскольку "callId" находится вне контекста:

Код: Выделить всё

  private WebClient createLoggingWebclient() {
return WebClient.builder()
.filter(addToCtx())
.filter(readCtx())
.baseUrl("http://localhost:8080")
.build();
}

private ExchangeFilterFunction readCtx() {
return ExchangeFilterFunction.ofResponseProcessor(
clientResponse ->
clientResponse.bodyToMono(String.class)
.flatMap(s ->
Mono.deferContextual(ctx -> {
// log response body and callId
log.info("callId: {}", (String)ctx.get(CALL_ID));
return Mono.just(clientResponse.mutate().body(s).build());
})
)
);
}

private ExchangeFilterFunction addToCtx() {
return ExchangeFilterFunction.ofRequestProcessor(
clientRequest ->
// log request body and callId
Mono.just(clientRequest).contextWrite(Context.of(CALL_ID, "123"))
);
}
Что я делаю не так и как мне реализовать эту функцию?


Подробнее здесь: https://stackoverflow.com/questions/792 ... rfunctions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Symfony Mailer: сообщение теряло контекстные данные при захвате события MessageSent
    Anonymous » » в форуме Php
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Как передавать контекстные данные в декоратор без изменения командного интерфейса?
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как передавать контекстные данные в декоратор без изменения командного интерфейса?
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как передавать контекстные данные в декоратор без изменения командного интерфейса?
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как получить все возможные контекстные вложения слов для омонима
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»