Доступ к компоненту Spring Boot в ExchangeFilterFunctionJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Доступ к компоненту Spring Boot в ExchangeFilterFunction

Сообщение Anonymous »

Я готовлю ExchangeFilterFunction с использованием ниже класса, < /p>
@Configuration
@RequiredArgsConstructor
public class WebClientConfiguration {

private final SessionContextService sessionContextService;
@Bean
public WebClient webClient(WebClient.Builder builder) {
return builder.filter(getFilterWithHeader()).build();
}

private ExchangeFilterFunction getFilterWithHeader() {

return (ClientRequest request, ExchangeFunction next) ->
next.exchange(
ClientRequest.from(request)
.header(
"HeaderKey",
sessionContextService.getHeaderValue().isPresent()
? sessionContextService.getHeaderValue().get()
: null)
.build())
.doOnNext(
(ClientResponse response) -> {
var headerValues = response.headers().asHttpHeaders().get("headerKey");
if (!CollectionUtils.isEmpty(headerValues)) {
sessionContextService.storeHeaderValue(headerValues.get(0));
}
});
}
}
< /code>
Здесь SessionContextextService - это компонент Spring Boot, где я хотел бы сохранить значение заголовка из ответа и добавить в следующий запрос. Прикрепление выше фильтра к веб-клиенту, использующему метод ниже. За пределами первоначально
приема потока? Если вы фактически работаете в веб -запросе
и все еще получаете это сообщение, ваш код, вероятно, работает
вне диспетчеры /DispatcherPortlet: в данном случае
используйте запрос contextlister или requestontextfilter, чтобы раскрыть текущий запрос. Контекст ExchangeFilterFunction, но не смог найти эффективное решение. Мне нужно сохранить это значение заголовка для компонента SessionContextextService, так как он, в свою очередь, хранит его в сеансе Redis для будущего доступа к значениям.>

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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