Long Story kurz: Ich erstelle API, die 100% REST sein soll. Ich versuche Standardantwort für folgenden Fall zu überschreiben: Ich habe eine Methode in meinem @RestController bekam die @RequestBody als AttributJava/Spring> Handle Bad Request Antwort für Controller-Methode mit @RequestBody, wenn keine Körper in Anfrage gesendet
@RequestMapping(value = {"register"}, method = RequestMethod.POST, produces = "application/hal+json")
public Resource<User> registerClient(@RequestBody User user, HttpServletRequest request)
und das Verfahren funktioniert nur gut, wenn ich eine hat schicken richtige Anfrage. Aber es gibt ein Problem, wenn ich es nicht tue. Wenn eine Anfrage einen leeren Rumpf hat, erhalte ich eine generische Tomcat-Fehlerseite für den Status 400, und ich brauche sie stattdessen, um nur eine Zeichenfolge oder ein JSON-Objekt zu senden.
Bis jetzt habe ich versucht, Exception-Handler in meinem RestControllerAdvice für alle Spring-Ausnahmen aus dem Paket org.springframework.web.binding hinzuzufügen, aber es hat auch nicht funktioniert.
Ich bin mir bereits bewusst, dass für einige sicherheitsrelevante Fehler müssen Sie Handler in der Konfiguration erstellen, aber ich weiß nicht, ob dies der Fall ist.
Hat jemand mit ähnlichen Problemen konfrontiert? Gibt es etwas, das mir fehlt?
"Aber es gibt ein Problem, wenn ich nicht." In welchen Fällen geben Sie keine Benutzerressource zurück? – ruslanys
@ruslanys Ich meine den Fall, wenn ich eine POST-Anfrage ohne Körper oder mit leeren Körper senden, wann immer ich einen Körper mit mindestens ** {} ** es als behandelt behandelt –
@ruslanys leider hilft es nicht, die Content-Type-Header ist da, aber immer noch - kein Körper in der Anfrage bringt das erwähnte Problem –