mit Validatoren in Spring-Datenruhe gibt HTTP 500 statt 400 zurück

8

Ich versuche, die Validierung im Frühling-Daten-Rest zu funktionieren. Aus der Dokumentation muss nur ein Validator verfügbar gemacht werden, und ich muss das funktionieren, aber wenn eine Validierungsbeschränkung erfolgreich abgefangen / verarbeitet wurde, erhalte ich eine 500-Fehler-Seite mit dem Stack-Trace.

In der Config-Klasse hat RepositoryRestMvcConfiguration einen validationExceptionHandler, der so aussehen sollte, als ob solche Validierungsfehler 400 statt 500 zurückliefern sollten. Es ist auch eine Lazy Loaded Bean.

Habe ich eine falsche Einstellung? Oder gibt es eine andere Möglichkeit, um 400 statt 500 anstelle von 500 zurückzugeben?

Ich verwende spring-data-rest Version 2.0.0 Release

Stack-Ablaufverfolgung durch Tomcat:

%Vor%

Kontoeinheit:

%Vor%

RestMvcConfig:

%Vor%     
wenic 26.02.2014, 01:17
quelle

2 Antworten

4

Scheint, es funktioniert zu haben; Ich musste das ValidatingRepositoryEventListener () überschreiben und Validatoren manuell dem Listener hinzufügen;

%Vor%

Ich bekomme jetzt 400 wie folgt zurück:

%Vor%     
wenic 27.02.2014 01:02
quelle
3

Die vorherigen Antworten funktionierten nicht für mich, ich denke aufgrund von Änderungen in Spring Data Rest, also hier ist eine aktualisierte Antwort, die mit JPA und MongoDb funktioniert hat, um andere zu retten, die viel Zeit damit verbringen.

Ich musste das zu meinen build.gradle-Abhängigkeiten hinzufügen

%Vor%

und diese Config-Klasse

%Vor%     
Romell 23.04.2016 17:57
quelle