Problème de récupération de paramètre multivalué avec jersey
Bonjour,
Je viens faire appel à vous car je reste bloqué sur un problème que je n'arrive pas à résoudre.
J'ai un ensemble de services REST développés à partir de l'API Jersey et je rencontre des difficultés pour récupérer la d'un attribut de la requête (attribut multi valué).
Un exemple ci dessous, mais globalement c'est un problème global à toutes les situations du même type.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
@POST
@Path("/alimenter/{objet}")
@Produces( { "text/xml", "*/*" })
public Response addProxyObjects(
@PathParam("objet") String typeObjet,
@HeaderParam("idAppli") String idAppli,
@HeaderParam("pwdAppli") String pwdAppli,
@HeaderParam("titles") String titres,
@HeaderParam("datas") List<String> donnees,
@DefaultValue("1") @HeaderParam("version") String version,
@Context HttpHeaders headers) throws MyException; |
La méthode prends ici en paramètre un attribut "donnees" qui doit-être une liste de valeurs passées dans l'entête "datas" de la requête HTTP.
Code:
1 2 3 4 5 6
| idAppli=xxx
pwdAppli=xxx
titles=ligne0
datas=ligne1
datas=ligne2
datas=ligne3 |
En local (Tomcat), je ne rencontre pas de difficultés, l'objet "donnees" contient bien toutes les valeurs passées dans la requête.
Lorsque je déploie sur un serveur d'application "iso prod" (Tomcat + Apache), mon objet "donnees" ne contient plus qu'une valeur composée de toutes les valeurs de la requête séparées par une virgule.
En local, j'ai donc 3 valeurs = "ligne1", "ligne2", "ligne3"
Déployé sur mon serveur cible, 1 seule valeur = "ligne1, ligne2, ligne3"
Le problème survient lorsque je fais appel à mon service en passant par apache (port 80) et disparait lorsque je passe directement par Tomcat (port 8080)
J'utilise la version 1.19 de Jersey (Tomcat 6 + Jdk6)
Une idée :question:, j'ai pu voir quelques sujets traitant du problème mais sans plus de détails m'aidant à le résoudre.
Merci pour votre aide car je m'arrache les cheveux :scarymov: