Consommation de webservice Axis2 avec C#
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:
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:
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:
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