В моем загрузочном приложении 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));
}