Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧@ControllerAdvice不';行不通_Java_Spring_Spring Mvc_Exception Handling_Spring Rest - Fatal编程技术网

Java 弹簧@ControllerAdvice不';行不通

Java 弹簧@ControllerAdvice不';行不通,java,spring,spring-mvc,exception-handling,spring-rest,Java,Spring,Spring Mvc,Exception Handling,Spring Rest,我希望在GlobalExceptionHandler类的帮助下处理任何控制器引发的所有异常。当我向控制器中添加以下代码时,它工作正常。但在这种情况下,我必须向所有控制器添加以下代码。但我不想在每个控制器中重复以下代码 @ExceptionHandler({FiberValidationException.class}) 公共字符串handleValidationException(HttpServletRequest请求,Exception ex) { 返回例如getMessage(); } 当

我希望在GlobalExceptionHandler类的帮助下处理任何控制器引发的所有异常。当我向控制器中添加以下代码时,它工作正常。但在这种情况下,我必须向所有控制器添加以下代码。但我不想在每个控制器中重复以下代码

@ExceptionHandler({FiberValidationException.class})
公共字符串handleValidationException(HttpServletRequest请求,Exception ex)
{
返回例如getMessage();
}

当我删除它们并使用GlobalExceptionHandler类时,它不会处理 例外情况

原因是什么?我怎么能修好它

@ControllerAdvice
@EnableWebMvc
public class GlobalExceptionHandler {

private static final Logger LOG = Logger.getLogger(GlobalExceptionHandler.class);

@ExceptionHandler({ FiberValidationException.class })
public String handleValidationException(HttpServletRequest req, Exception ex) {
    LOG.error("FiberValidationException handler executed");
    return ex.getMessage();
}

@ExceptionHandler({ ChannelOverflowException.class })
public String handleOverflowException(HttpServletRequest req, Exception ex) {
    LOG.error("ChannelOverflowException handler executed");
    return ex.getMessage();
}
}

您可以定义ControllerAdvice的基本包,并使用
ResponseEntityExceptionHandler
扩展您的全局异常类。e、 g.
公共类GlobalExceptionHandler扩展了ResponseEntityExceptionHandler{

我正在尝试添加“”到我的上下文:component scan元素。可能会起作用:/是您创建的GlobalExceptionHandler bean吗?不,我还没有在xml文件中为GlobalExceptionHandler创建任何bean OK,但是如果您为它创建默认构造函数并在其上记录一些内容或添加断点,spring会调用构造函数吗?是的,我使用了log,但它不会运行:/不需要调用您需要以某种方式将
GlobalExceptionHandler
声明为bean。您可以将bean代码粘贴到这里吗?不,这是一般的参考方法。感谢您的回答,我会尝试返回给您;)我签出了我的日志。现在它可以从GlobalHandlerClass处理,但在我的ajax错误客户端jqXHR.response中xt;的返回类似于html,但我想获取错误消息您的意思是它开始工作了(调用控制器建议)如果发生异常?是的,现在它在我的GlobalHandlerClassOk中处理好了。在这种情况下,如果您接受这一点作为这个问题的答案,并提出另一个关于访问ajax请求中的错误消息的问题,那就好了?