From dfe24ac601c63ae2169cd3399e34b184d122192c Mon Sep 17 00:00:00 2001 From: Administrator Date: Sun, 12 May 2024 23:58:05 +0800 Subject: [PATCH] new --- .../CustomErrorWebExceptionHandler.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 gateway/src/main/java/com/demo/gateway/config/CustomErrorWebExceptionHandler.java diff --git a/gateway/src/main/java/com/demo/gateway/config/CustomErrorWebExceptionHandler.java b/gateway/src/main/java/com/demo/gateway/config/CustomErrorWebExceptionHandler.java new file mode 100644 index 0000000..9bee522 --- /dev/null +++ b/gateway/src/main/java/com/demo/gateway/config/CustomErrorWebExceptionHandler.java @@ -0,0 +1,27 @@ +package com.demo.gateway.config; + +import org.springframework.boot.web.reactive.error.ErrorAttributes; +import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpStatus; +import org.springframework.web.server.ResponseStatusException; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +@Configuration +public class CustomErrorWebExceptionHandler { + + @Bean + public ErrorWebExceptionHandler errorWebExceptionHandler(ErrorAttributes errorAttributes) { + return (exchange, ex) -> { + if (ex instanceof ResponseStatusException) { + ResponseStatusException responseStatusException = (ResponseStatusException) ex; + exchange.getResponse().setStatusCode(responseStatusException.getStatus()); + return exchange.getResponse().setComplete(); + } + exchange.getResponse().setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR); + return exchange.getResponse().setComplete(); + }; + } +}