Bonjour,
Dans le cadre d'une application de services sécurisé, je propose la possibilité à l'utilisateur de sauvegarder ses informations de formulaires dans une base de données à travers un webservice hébergé ailleurs.
Le webservice est développé en Java avec Axis2 et semble fonctionner très bien. Le client est développé en C# et a été généré par la commande "wsdl".
L'un de ces services permet de récupérer la liste des formulaires sous forme d'un tableau d'objets :
A savoir que "Form" est un POJO bien formé. La seule différence c'est que chaque formulaire dispose d'une liste d'entrées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public Form[] getValidatedForms() { ... }
Donc lorsque j'essaye d'appeler la méthode "getValidatedForms" du webservice, on me retourne bien un tableau de "Form" avec le bon nombre d'éléments mais tout est null à l'intérieur sans que je sache pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class Form implements Serializable { private String url; private String action; private String method; private String name; private int number; private Field[] fields; ...
Le webservice est disponible à cette adresse : http://ws.agil-it.fr/axis2/services/Services?wsdl
L'appel au service concerné ici : http://ws.agil-it.fr/axis2/services/...ValidatedForms qui me retourne d'ailleurs un résultat cohérent !
La seule chose que j'ai modifié au stub généré du WSDL en C#, c'est l'URL du webservice qui a été développé en local mais qui est hébergé sur un autre serveur.
Le code de l'appel au webservice et la cause de l'erreur.
Si quelqu'un pouvait m'éclairer sur ce problème ? Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Webservice.Services services = new Webservice.Services(); Webservice.Form[] forms = services.getValidatedForms(); foreach (Webservice.Form form in forms) { /* Il y a bien un objet dans le tableau puisque ça passe ici */ /* Par contre toutes les données form.x sont vides */ string msg = "URL : " + form.url + "\n"; msg += "Name : " + form.name + "\n"; msg += "Method : " + form.method + "\n"; msg += "Action : " + form.action + "\n\n"; /* Et ici, c'est null donc ça plante alors qu'un formulaire possède nécessaire un champ ou plus */ foreach (Webservice.Field field in form.fields) { msg += "\tName : " + field.name + "\n"; msg += "\tType : " + field.type + "\n"; msg += "\tValue : " + field.value + "\n"; msg += "\tRank : " + field.rank + "\n\n"; } MessageBox.Show(msg); }
Marc
Partager