Ausbreitung von Kurzschlüssen mit federreaktivem WebclientJava

Java-Forum
Anonymous
 Ausbreitung von Kurzschlüssen mit federreaktivem Webclient

Post by Anonymous »

Ich habe einen Integrationstest geschrieben, der fünf HTTP -Anforderungen in einen Fluss, kurze Kaukuiten mit einer () in einen Fluss verschmelzen, und dann eine neue HTTP -Anforderung mit demselben Client ausführt: < /p>

Code: Select all

 Map cookieMap = new ConcurrentHashMap();
WebClient webClient =
WebClient.builder()
.clientConnector(
followRedirectsWithCookies(
cookieMap, (String location) -> !location.matches(".*/landingMockFe")))
.baseUrl("http://localhost:" + localPort)
.build();
...
List responses = new ArrayList(5);
for (int i = 0; i < 5; i++) {
responses.add(
webClient
.get()
...
.exchangeToMono(response -> Mono.just(response.statusCode())));
}

Boolean is4xxError = Flux.merge(responses).any(response -> response.is4xxClientError()).block();

String newResponseString = webClient
.get()
.uri("some-other-uri")
...
.retrieve()
.bodyToMono(String.class)
.block();
Dies funktionierte 1 Jahr lang mit Spring WebFlux 6.1.13, Spring Security 6.3.3, Spring Boot Starter Parent 3.3.4, Project Reactor Core 3.6.10
Jetzt habe ich auf WebFlux 6.2.5, Sicherheit 6.4, Start -Parents 3.4.4, Reactor 3.7.4 und gelegentlich. />
reactor.netty.http.client.prematurecroseException: Verbindung vor dem Antwort vor dem Problem geschlossen vor der Antwort geschlossen. Diese Änderung scheint das Problem zu lösen: < /p>

Code: Select all

int count4xxError =
Flux.merge(responses)
.filter(response -> response.is4xxClientError())
.count()
.block()
.intValue();
Ist dies ein Fehler (im Zusammenhang mit einem () Kurzschluss) oder ist es das erwartete Verhalten?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post