2016-11-23 1 views
0

Java Spring MVCwie Federstandard mvc Fehler Fehlercode 400 von

„Die Anfrage des Kunden syntaktisch falsch war geschickt“ ändern, wenn ungültige Anfragen Senden (gebrochene JSON zum Beispiel) an dem Controller Endpunkt, die Antwort :

HTTP-Status 400: "Die vom Client gesendete Anforderung war syntaktisch falsch" wird zurückgegeben, ohne die Controller-Aktion tatsächlich einzugeben.

Da mein Endpunkt für Drittanbieter offen ist, möchte ich diesen Fehlercode (nur diese Art von Fehler - nicht alle Fehlercodes vom Endpunkt) überschreiben und ändern.

Das Überschreiben der Nachricht ist optional, wäre aber eine nette Ergänzung.

** Erklären Sie für die doppelte Markierung: Ich weiß, wie der Fehlercode gesetzt wird, sobald die Anfrage in der Controller-Aktion landet, das Problem, das ich beschreibe ist, dass die Anfrage nicht die Aktionsmethode eingeben, da die Syntax falsch ist.

+0

Sie sollten http://stackoverflow.com/questions/16232833/how-to-respond-with-http-400-error-in-a-spring-mvc-responsebody-method-returnin – Aks

+0

Sie suchen könnte einen Filter verwenden – cralfaro

+0

Bitte überprüfen Sie die Erklärung, die ich hinzugefügt habe. @Aks –

Antwort

0

Ich denke, diese Art der Fehlermeldung ist MethodArgumentNotValidException.class. können Sie einen Controller Berater verwenden und gab den Fehlercode ändern:

@ControllerAdvice 
public class MyErrorHandler { 

    @ExceptionHandler(MethodArgumentNotValidException.class) 
    @ResponseStatus(HttpStatus.OK /*or your optional error code */) 
    @ResponseBody 
    public JPresent myHandler(MethodArgumentNotValidException ex) { 
    // handle error 
} 
0

diesen Code hinzufügen, in Ihnen

<error-page> 
    <error-code>400</error-code> 
    <location>/WEB-INF/views/errorPages/page-error-400.jsp</location> 
</error-page> 

Sie können für den Rest des Fehlercodes Sie die gleiche Sache web.xml tun wollen zu handhaben

+0

hat bereits diese Einstellung, es hilft nicht für diese Fehler. –

Verwandte Themen