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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public Form[] getValidatedForms()
	{
		...
	}
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
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;
...
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.

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.

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);
                        }
Si quelqu'un pouvait m'éclairer sur ce problème ? Merci d'avance.

Marc