2017-11-18 1 views
0

Ich überschreibe die BindException, indem ich ResponseEntityExceptionHandler erweitere.Spring ResponseEntityExceptionHandler löst Override-Nachrichten nicht auf

Ich habe meine benutzerdefinierten Nachrichten im Eigenschaftspaket bereitgestellt. Es wird jedoch nicht von ResponseEntityExceptionHandler erkannt.

Es löst für TypeMistMatch auf Controller-Anforderungsparameter. Aber es nicht innerhalb ResponseEntityExceptionHandler.

Fehle ich etwas?

@Component 
@ControllerAdvice 
public class ExceptionHandler extends ResponseEntityExceptionHandler { 

    @Override 
    protected ResponseEntity<Object> handleBindException(final org.springframework.validation.BindException ex, 
      final HttpHeaders headers, final HttpStatus status, final WebRequest request) { 
     logger.info(ex.getClass().getName()); 
     // 
     final List<String> errors = new ArrayList<String>(); 
     for (final FieldError error : ex.getBindingResult().getFieldErrors()) { 
      errors.add(error.getField() + ": " + error.getDefaultMessage()); 
     } 
     for (final ObjectError error : ex.getBindingResult().getGlobalErrors()) { 
      errors.add(error.getObjectName() + ": " + error.getDefaultMessage()); 
     } 
     final ErrorMessage apiError = new ErrorMessage(HttpStatus.BAD_REQUEST, ex.getLocalizedMessage(), errors.toString()); 
     return new ResponseEntity<>(apiError, new HttpHeaders(), HttpStatus.BAD_REQUEST); 
    } 

} 

Msg.properties

typeMismatch.demoPojo.instant= Supposed to be a date 
typeMismatch.instant=Instant field 
typeMismatch.java.time.Instant=Instant type 
+0

sollten nicht Ihre '@ Override' kommentierten Methode' handleBindException' auch mit '@ExceptionHandler (MethodArgumentNotValidException.class)' mit Anmerkungen versehen werden sollte? –

Antwort

0

Ich habe auch dieses Tutorial gefolgt und der Fehler ist in dieser Klasse nicht. Es ist in der Klasse apiError. Sie sollten Getter und Setter generieren, etwas, das im Tutorial nicht gezeigt wurde.

Tutorial Link: http://www.baeldung.com/global-error-handler-in-a-spring-rest-api

+1

Bitte teilen Sie die Hauptpunkte dieser Antwort hier, anstatt nur auf eine externe Ressource zu verlinken –

Verwandte Themen