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