From 72d3e3caa8d7b3a4a5ca7127a2fcfaa0f290fcac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Wed, 8 Jan 2025 16:01:58 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20rpc=20=E5=BC=82=E5=B8=B8=E6=8B=A6=E6=88=AA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dubbo/config/DubboConfiguration.java | 10 +++++++ .../dubbo/handler/DubboExceptionHandler.java | 27 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/handler/DubboExceptionHandler.java diff --git a/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/DubboConfiguration.java b/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/DubboConfiguration.java index 9e88785a..4a87e22c 100644 --- a/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/DubboConfiguration.java +++ b/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/DubboConfiguration.java @@ -1,6 +1,7 @@ package org.dromara.common.dubbo.config; import org.dromara.common.core.factory.YmlPropertySourceFactory; +import org.dromara.common.dubbo.handler.DubboExceptionHandler; import org.dromara.common.dubbo.properties.DubboCustomProperties; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -23,4 +24,13 @@ public class DubboConfiguration { public BeanFactoryPostProcessor customBeanFactoryPostProcessor() { return new CustomBeanFactoryPostProcessor(); } + + /** + * 异常处理器 + */ + @Bean + public DubboExceptionHandler dubboExceptionHandler() { + return new DubboExceptionHandler(); + } + } diff --git a/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/handler/DubboExceptionHandler.java b/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/handler/DubboExceptionHandler.java new file mode 100644 index 00000000..5a614951 --- /dev/null +++ b/ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/handler/DubboExceptionHandler.java @@ -0,0 +1,27 @@ +package org.dromara.common.dubbo.handler; + +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.rpc.RpcException; +import org.dromara.common.core.domain.R; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +/** + * Dubbo异常处理器 + * + * @author Lion Li + */ +@Slf4j +@RestControllerAdvice +public class DubboExceptionHandler { + + /** + * 主键或UNIQUE索引,数据重复异常 + */ + @ExceptionHandler(RpcException.class) + public R handleDubboException(RpcException e) { + log.error("RPC异常: {}", e.getMessage()); + return R.fail("RPC异常,请联系管理员确认"); + } + +}