Je travaille sur une application web qui utilise Jersey. J'essaie d'implémenter une sorte de get-after-post en utilisant un URIBuilder et une réponse seeOther. Le but est de rediriger vers le même URI que celui sur lequel le navigateur se trouve déjà, mais de forcer un GET. Cela fonctionne un peu comme ceci :
- La demande arrive par PUT
- Demande PUT traitée
- Réponse de SeeOther retournée
Ce qui devrait se passer, c'est que le navigateur capte le 303 See Other et exécute un GET sur l'URI qu'il reçoit. Malheureusement, ce qui se passe, c'est qu'il exécute un PUT sur l'URI à la place (pour autant que je puisse dire) et le PUT le renvoie à l'étape 1. ci-dessus, provoquant une boucle de redirection.
Une idée de ce qui ne va pas ici ?
private Response giveSeeOther(){
/*Get the base URI builder*/
final UriBuilder uriBuilder = m_uriInfo.getBaseUriBuilder();
/* Some stuff to create the URI */
final Map<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("uid", getUid());
final URI redirectUri = uriBuilder.path(SomeObject.class).
path(SomeObject.class, "get").
buildFromMap(parameterMap);
/* See Other (303) */
return Response.seeOther(redirectUri).build();}
C'est le code pour la méthode see other. Je ne sais pas quel autre code vous voudriez voir, mais faites-le moi savoir.