Bonjour.
Je suis en train de tester la programmation réactive avec webflux (uniquement la partie cliente avec webclient).
J'ai donc une requête qui ressemble à ceci :
Code Client.java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Mono<String> response = webclient.get() .uri(fullUri) .retrieve() .bodyToMono(String.class) .onErrorResume(e -> Mono.error(new CustomException("Error")));
que je teste avec succès dans le cas nominal :
Code Test.java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Test void testClientNominal() { Mono<String> response = client.request("/api/v1/clients"); response.subscribe(System.out::println); assertNotNull(response); }
mais je n'arrive pas à catcher l'exception sur par exemple un 404 :
Code Test.java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @Test void testClientEndpointNotFound() { try { Mono<String> response = client.request("/api/v1/fakeurl"); response.subscribe(System.out::println); fail("Exception was not thrown"); } catch(CustomException e) { System.out.println("Error"); } }
Je n'arrive pas à trouver des ressources sur les exceptions côté client sur le net, et je ne comprends pas ce qui cloche dans mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 reactor.core.publisher.Operators - Operator called default onErrorDropped reactor.core.Exceptions$ErrorCallbackNotImplemented: com.sandbox.exception.ExceptionCustom: "Error"
Est-ce que mon code est correct, et si oui comment catcher l'exception correctement![]()
Partager