diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java
index 1ff16b3..819761e 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java
@@ -18,7 +18,6 @@
 
 import com.supwisdom.infras.security.reactive.basic.EnableInfrasBasicWebFluxApi;
 import com.supwisdom.infras.security.reactive.jwt.EnableInfrasJWTWebFluxApi;
-import com.supwisdom.institute.backend.common.framework.exception.EnableCustomExceptionHandler;
 
 import static org.springframework.web.cors.CorsConfiguration.ALL;
 
@@ -26,8 +25,6 @@
 
 @EnableScheduling
 
-@EnableCustomExceptionHandler
-
 @EnableInfrasJWTWebFluxApi
 @EnableInfrasBasicWebFluxApi
 public class Application {
@@ -36,21 +33,6 @@
     SpringApplication.run(Application.class, args);
   }
   
-//  @Bean
-//  public CorsFilter corsFilter() {
-//    final CorsConfiguration config = new CorsConfiguration();
-//    //config.setAllowCredentials(true);
-//    config.addAllowedOrigin("*");
-//    config.addAllowedHeader("*");
-//    config.addAllowedMethod("*");
-//
-//    final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-//    source.registerCorsConfiguration("/v2/api-docs", config);
-//    source.registerCorsConfiguration("/api/**", config);  // 对 /api/** 下的请求，支持 cors 跨域请求，如不需要可以注释
-//
-//    return new CorsFilter(source);
-//  }
-
   @Bean
   public WebFilter corsFilter() {
     return (ServerWebExchange ctx, WebFilterChain chain) -> {
