From 7d03fd7d726469278b5bd1b379f0303fa55b7c3e Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 17 七月 2025 11:13:32 +0800
Subject: [PATCH] 解决API调试出错

---
 se-system/src/main/java/com/terra/system/config/WebConfig.java |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/se-system/src/main/java/com/terra/system/config/WebConfig.java b/se-system/src/main/java/com/terra/system/config/WebConfig.java
index 3b05800..e95e229 100644
--- a/se-system/src/main/java/com/terra/system/config/WebConfig.java
+++ b/se-system/src/main/java/com/terra/system/config/WebConfig.java
@@ -3,16 +3,23 @@
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson.support.config.FastJsonConfig;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.alibaba.fastjson2.JSON;
 import com.terra.system.interceptor.AuthInterceptor;
 import com.terra.system.service.all.SysService;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.Ordered;
 import org.springframework.http.MediaType;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.util.AntPathMatcher;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.servlet.config.annotation.*;
+import reactor.core.Exceptions;
 
+import java.io.IOException;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.Collections;
@@ -50,7 +57,8 @@
     @Override
     protected void addResourceHandlers(ResourceHandlerRegistry registry) {
         registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
-        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+        //registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
         registry.addResourceHandler("/druid/**").addResourceLocations("classpath:/META-INF/resources/druid/");
         registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
         super.addResourceHandlers(registry);
@@ -87,6 +95,7 @@
     protected void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(getAuthBean())
                 // .excludePathPatterns("/swagger", "/webjars/**", "/v2/**", "/sign/**")
+                //.excludePathPatterns("/v3/api-docs")
                 .addPathPatterns("/**");
         super.addInterceptors(registry);
     }
@@ -96,7 +105,24 @@
      */
     @Override
     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
+        //FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
+        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter() {
+            @Override
+            protected void writeInternal(Object object, org.springframework.http.HttpOutputMessage outputMessage)
+                    throws IOException, org.springframework.http.converter.HttpMessageNotWritableException {
+                ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+                if (attributes != null) {
+                    String requestURI = attributes.getRequest().getRequestURI();
+                    if ("/v3/api-docs".equals(requestURI)) { // 鎺掗櫎 /v3/api-docs 璺緞
+                        // 浣跨敤榛樿鐨� JSON 搴忓垪鍖栵紙濡� Jackson锛夛紝杩欓噷闇�瑕佹墜鍔ㄥ鐞嗭紝涓嶈兘鐩存帴璋冪敤 super.writeInternal
+                        outputMessage.getBody().write(String.valueOf(object).getBytes());
+                        return;
+                    }
+                }
+                super.writeInternal(object, outputMessage); // 鍏朵粬璺緞浣跨敤 Fastjson2 澶勭悊
+            }
+        };
+
         FastJsonConfig config = new FastJsonConfig();
         config.setSerializerFeatures(
                 SerializerFeature.WriteNullListAsEmpty,

--
Gitblit v1.9.3