В Spring загрузка TypeMismatchException.getPropertyName () всегда возвращает нуль - PullRequest
0 голосов
/ 26 февраля 2020

В моем загрузочном приложении Spring у меня есть метод контроллера с RequestParam Integer clockDrift. При тестировании от Postman, если я предоставляю целочисленное значение, все работает как положено. Но если я предоставлю какое-либо строковое значение в поле clockDrift, запрос будет отправлен методу handleTypeMismatch в классе обработчика. Я пытаюсь получить имя свойства из TypeMismatchException ex. Я всегда получаю ноль. Через Eclipse, если я проверяю ex, я могу видеть «clockDrift» под именем (рядом с этим я вижу символ F. Не уверен, что это такое. Буду признателен, если вы объясните значение F). Но не уверен, как получить значение имени. Я не вижу никакого другого метода, кроме getPropertyName (). Как получить имя свойства из объекта TypeMismatchException?

@Order(Ordered.HIGHEST_PRECEDENCE)
@RestControllerAdvice
public class ApiGlobalExceptionHandler extends ResponseEntityExceptionHandler
{
..
..
  @Override
  protected ResponseEntity<Object> handleTypeMismatch(TypeMismatchException ex, HttpHeaders headers, HttpStatus status,
      WebRequest request)
  {
    System.out.println(ex.getPropertyName()); -- Returning null
    String message = "Input value '" + ex.getValue() + "'" + " is  invalid. Required type is "
        + ex.getRequiredType().getSimpleName();

    return ResponseEntity.status(status).body(SecurityTransformationUtil.buildServiceMessageResponse(status, message));
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...