X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemo%2FRestController.java;fp=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemo%2FRestController.java;h=f7f63a62e7c62db9e5a33b223c58c16862ca572c;hb=d254e8fa52ab3897c7d7a95e36d9b93635d7d7c6;hp=288fd9e4f5665ff2b68d6379b563c174c56d1e52;hpb=b7dc861910bd43020ff91c8f9f51fe4c32a66aec;p=demos%2Ftesting diff --git a/src/main/java/de/juplo/demo/RestController.java b/src/main/java/de/juplo/demo/RestController.java index 288fd9e..f7f63a6 100644 --- a/src/main/java/de/juplo/demo/RestController.java +++ b/src/main/java/de/juplo/demo/RestController.java @@ -4,6 +4,8 @@ package de.juplo.demo; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.reactive.function.client.WebClientResponseException; +import org.springframework.web.reactive.function.client.WebClientResponseException.NotFound; import reactor.core.publisher.Mono; @@ -26,6 +28,22 @@ public class RestController @GetMapping(path = { "", "/" }, produces = MediaType.TEXT_PLAIN_VALUE) public Mono fetch(@RequestParam String path) { - return service.getRemoteText(path); + return + service + .getRemoteText(path) + .onErrorResume(t -> + { + if(t.getClass().equals(NotFound.class)) + return Mono.error(t); + + return + Mono.error( + WebClientResponseException.create( + 503, + "Service Unavailable - Cause: " + t.getMessage(), + null, + null, + null)); + }); } }