ExceptionHandler не найден на моей машине, но находится на сервере разработки - PullRequest
0 голосов
/ 02 ноября 2018

Я создал REST-API, в котором все проблемы обрабатываются путем генерирования исключений и последующей их обработки в аннотированном классе @ControllerAdvice, содержащем несколько методов @ExceptionHandler.

По какой-то причине исключения не обнаруживаются при выполнении моих интеграционных тестов (с использованием грузового сервера), ИЛИ когда я запускаю войну на локальном сервере Tomcat 8, но они превосходно ловятся, когда я запускаю войну на сервер разработки. Насколько мне удалось убедиться, dev-Tomcat не настроен по-другому.

Мой @ControllerAdvice выглядит следующим образом:

@ControllerAdvice
public class CustomResponseEntityExceptionHandler {

@ExceptionHandler(PasswordMismatchException.class)
public final ResponseEntity<ErrorDetails> handlePasswordChangeMismatch(
        PasswordMismatchException ex,
        WebRequest request) {
    ErrorDetails errorDetails = new ErrorDetails(
            new Date(),
            ex.getMessage(),
            request.getDescription(false),
            MessageKeys.mismatchedPassword);
    return new ResponseEntity<>(errorDetails, HttpStatus.BAD_REQUEST);
}

@ExceptionHandler(DuplicateUserException.class)
public final ResponseEntity<ErrorDetails> handleDuplicateUser(
        DuplicateUserException ex,
        WebRequest request) {
    ErrorDetails errorDetails = new ErrorDetails(
            new Date(),
            ex.getMessage(),
            request.getDescription(false),
            MessageKeys.duplicateUsername);
    return new ResponseEntity<>(errorDetails, HttpStatus.BAD_REQUEST);
}

@ExceptionHandler(LastAdminDeletionException.class)
public final ResponseEntity<ErrorDetails> handleDuplicateUser(
        LastAdminDeletionException ex,
        WebRequest request) {
    ErrorDetails errorDetails = new ErrorDetails(
            new Date(),
            ex.getMessage(),
            request.getDescription(false),
            MessageKeys.lastAdminDeletion);
    return new ResponseEntity<>(errorDetails, HttpStatus.BAD_REQUEST);
}

@ExceptionHandler(WeakPasswordException.class)
public final ResponseEntity<ErrorDetails> handleDuplicateUser(
        WeakPasswordException ex,
        WebRequest request) {
    ErrorDetails errorDetails = new ErrorDetails(
            new Date(),
            ex.getMessage(),
            request.getDescription(false),
            MessageKeys.weakPassword);
    return new ResponseEntity<>(errorDetails, HttpStatus.BAD_REQUEST);
}
}

Вам это, ребята, знакомо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...