В классе ResponseEntityExceptionHandler уже есть метод handleNoHandlerFoundException (), определенный ниже.
protected ResponseEntity<Object> handleNoHandlerFoundException(NoHandlerFoundException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return this.handleExceptionInternal(ex, (Object)null, headers, status, request);
}
Поскольку сигнатуры методов (родительский класс и наш класс реализации) различаются, это привело к неоднозначной ошибке. Использование той же подписи переопределит вышеуказанный метод с нашей пользовательской реализацией.
@ExceptionHandler(NoHandlerFoundException.class)
protected ResponseEntity<Object> handleNoHandlerFoundException(NoHandlerFoundException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
ErrorResponse error = new ErrorResponse("404", "page not found");
return new ResponseEntity(error, HttpStatus.NOT_FOUND);
}
Надеюсь, это поможет !!