Je suis en train de concevoir un POJO pour les scénarios d'erreur personnalisés de mes méthodes @RequestMapping
.Quelle classe de modèle est utilisée pour les réponses d'erreur des méthodes de mappage de requête?
printemps par défaut jette un HttpMessageNotReadableException
si un POST
est faite sans corps et renvoie la réponse d'erreur très bien que quelque chose comme ceci:
{
"timestamp": "2017-07-28T18:54:11.867+0000",
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.http.converter.HttpMessageNotReadableException",
"message": "Required request body is missing: public org.springframework.http.ResponseEntity<some.package.name.SomeResponseClass> some.package.name.SomeControllerClass.someRequestMappingMethod(java.util.Map<java.lang.String, java.lang.String>, some.package.name.SomeRequestClass)",
"path": "/somepath/"
}
De même, si la validation pour un champ annotée avec @Valid
échoue, il jette MethodArgumentNotValidException
et renvoie la réponse d'erreur comme:
{
"timestamp": "2017-07-28T17:23:53.102+0000",
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.bind.MethodArgumentNotValidException",
"errors": [
{
"codes": [
"NotNull.incident.someField",
"NotNull.someField",
"NotNull.java.lang.String",
"NotNull"
],
"arguments": [
{
"codes": [
"someObject.someField",
"someField"
],
"arguments": null,
"defaultMessage": "someField",
"code": "someField"
}
],
"defaultMessage": "someField is null",
"objectName": "someObject",
"field": "someField",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotNull"
}
],
"message": "Validation failed for object='someObject'. Error count: 2",
"path": "/somepath/"
}
Je l'avoir entendu que soit du ressort de cas ci-dessus doit être un retour ResponseEntity
objet avec les en-têtes et le corps enveloppé dans celui-ci. Et il doit y avoir une classe de modèle représentant le corps ayant des champs comme ci-dessus timestamp
, status
, error
etc. Je voulais juste visiter cette classe pour avoir une idée de ce que tous les champs Spring ont inclus dans leur modèle de réponse aux erreurs. Ou peut-être que je pourrais vouloir l'étendre. J'ai passé pas mal de temps à chercher ce cours, mais je n'ai pas pu le trouver.
Le meilleur que j'ai pu trouver est ResponseEntityExceptionHandler#handleException()
, mais mon débogueur ne va même pas aller au point de rupture là !!
Quelqu'un peut-il me diriger vers l'emballage où il existe?
Cela a été utile, Merci. –
+1 pour les liens externes. Cependant, les deux réponses ici sont également utiles pour moi et je ne peux en accepter qu'une seule. Donc, j'accepte celui qui a été répondu en premier. :) –