Java ControllerAdvcie不';t使用GenericFilterBean处理所有异常

Java ControllerAdvcie不';t使用GenericFilterBean处理所有异常,java,spring,spring-boot,Java,Spring,Spring Boot,我使用GenericFilterBean制作了一个过滤器 public class JwtFilter extends GenericFilterBean { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, Servle

我使用GenericFilterBean制作了一个过滤器

public class JwtFilter extends GenericFilterBean {
       @Override
       public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
          throws IOException, ServletException {
          HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
          HttpServletResponse response = (HttpServletResponse) servletResponse;
          
          String jwt = resolveToken(httpServletRequest);
          String requestURI = httpServletRequest.getRequestURI();
          
          try {
              System.out.println(man);
              
              if (StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)) {
                 
                 Authentication authentication = tokenProvider.getAuthentication(jwt);
                 
                 SecurityContextHolder.getContext().setAuthentication(authentication);
              } else {
              }
          } catch(Exception e) {
              System.out.println("yoyo");
                          
              response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid token.");
              return ;
          }

          
          filterChain.doFilter(servletRequest, servletResponse);
       }
我有一个例外,可以抓住每一个例外

@ControllerAdvice
@RestController
public class CustomizedResponseEntityExceptionHandler 
extends ResponseEntityExceptionHandler{
    
    @Autowired
    private WebhookService webhookService;
    
    @ExceptionHandler(Exception.class)
    public final ResponseEntity<Object> handleAllException
        (Exception ex, WebRequest request){
        webhookService.sendMessage(ex.getMessage());
                
        ExceptionResponse exceptionResponse = new ExceptionResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), false, ex.getMessage());
        
        return new ResponseEntity(exceptionResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }
@ControllerAdvice
@RestController
公共类CustomizedResponseEntityExceptionHandler
扩展ResponseEntityExceptionHandler{
@自动连线
私有WebhookService WebhookService;
@ExceptionHandler(Exception.class)
公共最终责任处理例外
(例外情况,例如WebRequest){
webhookService.sendMessage(例如getMessage());
ExceptionResponse ExceptionResponse=新的ExceptionResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(),false,例如getMessage());
返回新的ResponseEntity(exceptionResponse,HttpStatus.INTERNAL_服务器_错误);
}
如果您在筛选器中看到,则会出现错误“System.out.println(man);”,因为没有man变量。
但是当错误发生时,它会给出spring boot default的响应。
我定义了response.sendError,外加@ExceptionHandler(Exception.class),以防万一。
两种方法都不起作用。
在这种情况下,如何控制自定义响应?
感谢您阅读。

为什么要使用
@RestController
注释?如果没有您所说的名为
man
的变量,那么您的代码就无法编译。