JAX/Maillot Personnalisé code d'erreur en Réponse
En Jersey, comment peut-on "remplace" le statut de chaîne associée avec un code de statut?
par exemple
return Response.status(401).build();
génère une réponse HTTP qui contient:
HTTP/1.1 401 Unauthorized
J'ai (pas moi, mais l'application cliente) aimerait voir la réponse que:
HTTP/1.1 401 Authorization Required
J'ai essayé les méthodes mais en vain:
1) Cela ajoute simplement la Chaîne de caractères dans le corps de la réponse HTTP
return Response.status(401).entity("Authorization Required").build();
2) Même résultat avec ce trop:
ResponseBuilder rb = Response.status(401);
rb = rb.tag("Authorization Required");
return rb.build();
Remercie de votre aide!
-spd
Vous devez vous connecter pour publier un commentaire.
Pour ce faire, Jersey, vous avez le concept de WebApplicationException classe. Une méthode consiste simplement à étendre cette classe et toutes les méthodes pour définir le texte d'erreur est retourné. Dans votre cas, ce serait:
Maintenant dans votre code qui implémente le reste il vous suffit de lancer une exception de ce type, en passant dans le texte de la valeur dans le constructeur par exemple
Qui peut créer une classe de ce genre pour chacun de votre site web, les exceptions et les jeter dans un mode similaire.
C'est aussi expliqué dans le Maillot guide de l'utilisateur - bien que le code est en fait légèrement incorrect:
https://jersey.github.io/nonav/documentation/latest/user-guide.html/#d4e435
entity(message)
?Je ne suis pas sûr JSR 339: JAX-RS 2.0: La Java de l'API pour les Services Web RESTful déjà couverts ou non.
Vous pourriez avoir à étendre le Réponse.StatusType pour cela.
Et voici quelques étendu statust types.
C'est comment je le fais.