yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010
-
26 mars 2010 à 16:39
yohan49
Messages postés380Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 août 2011
-
29 mars 2010 à 16:00
bonjour et merci d'avance pour tous ceux qui vont consacré un petit moment à mon post.
je travaille sur un projet client-serveur, tel que le serveur fournit des web services(développés en java, Jax_WS) et le client qui consomme ces web services est developpé en c#(visual studio 2008), avant de faire mon client c# , j'avais développé un client java qui consommait mes web services et ça fonctionnait super bien, avec mon client c# ça fonctionne seulement quand je fait appel à une méthode d'un web service qui retourne un type simple (int, String,etc ...) par contre si mon web service retourne un type complexe( List<MyClass> , MyClass est une classe simple contient deux champs int id et String name. c'est une classe du package du serveur, mon web service remplie ses champs et envois une liste de cette classe), le problème c'est que dans mon client c# ça me signale une erreur de compilation(le type ou le nom de l'espace de nom 'MyClass' est introuvable).
pour plus de précision :j'ai intégré mon web service en l'ajoutant tant qu'une référence web j'ai pas utilisé wsdl.exe est ce que ca sera à cause de ça que mon client ne reconnait pas la classe MyClass, pourtant ça marchait avec le client java( le client C# est une obligation dans le cadre de mon projet est pas u choix personnel )
à l'attente de votre aide
merci a touuuuuuuus.
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!
A voir également:
Consommation d'un webservice(JAX) retournant un object complexe!!
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010 29 mars 2010 à 11:23
bonjour, merci bcp pr la solution , ça m'a aidé à résoudre mon problème et la j'ai un autre problème lol(que des problème ), en gros mon web service retourne une collection de description de base de donnée voila les bout de code en java de mon web service:
**************************
List<DocBaseDesc> list = new ArrayList<DocbaseDesc>();
//DocbaseDesc est une classe simple contient 2 champs String id et //String description
public List<DocbaseDesc> getListdesc(){
......traitement....
return list
}
***************************************
au niveau de mon client c# je fais appel a mon webservice:
*********************************
// Instancier mon web service: mywb
ServerListdesc.getlistClient mywb = new ServerListdesc.getlistClient(); //j'accéde a mon object docbaseDesc par la solution que tu ma //proposée
List<ServerListdesc.docbaseDesc> listDocBase = new List<ServerListdesc.docbaseDesc>(); //et au niveau de cet appel ça me génére une erreur
listDocBase = mywb.getListdesc(); //: ErreurImpossible de convertir implicitement le type ServerListdesc.docbaseDesc[]' en 'System.Collections.Generic.List<ServerListdesc.docbaseDesc>' de l'aide SVP
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010 29 mars 2010 à 14:42
tout d'abord merci bcp pour ton aide, mais c bon g résolu le problème de la manière suivante:
ServerListdesc.docbaseDesc[] myarray = mywb.getListdesc();
en fait la méthode getListdesc() retourne une list de type docbaseDesc en java mais si je fais pareil en c#(Lis<ServerListdesc.docbaseDesc> myarray = getListdesc()) ça me génère l'erreur de tte à l'heure(problème de conversion de type).
le problème mnt (de nouveau un probléme)c 'est que à chaque fois qd j'affiche les résultats de myarray, ça m'affiche les résultats précedents.
plus précisément, ma méthode getListdesc() devrait me retourner 3 valeurs, le problème c que la 1ere fois ma bien affiché les 3 valeurs la 2éme fois 2 fois les 3 valeurs (6 valeurs), la 3éme fois 9 valeurs ainsi de suite ....
le myarray ne se vide pas et garde les anciens valeurs.
voila mon code:
************************
ServerListdesc.docbaseDesc[] myarray = new ServerListdesc.docbaseDesc[0];
myarray = myweb.getListdesc();
int nbDoc = myarray.Count();
for (int i = 0; i < nbDoc; i++)
{
String name = mayarray[i].name;
String desc = mayarray[i].description;
System.Console.WriteLine("Docbase " + i + ": " + name + " / " + desc);
}
j'ai essayé de vider mayarray de cette façon
int j = 0;
while (resultDocbasesList[j] != null)
{
mayarray[j]=null;
//ou meme mayarray[j]= 0;
}
les deux façons me génèrent des erreurs de compilations
tu aurais une idée pr résoudre ce problème.
et merci bccccccccccp
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010 29 mars 2010 à 15:11
malgré le test à la fin du while ca me génère une out of exception
"l'index se trouve en dehors des limites du tableau
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010 29 mars 2010 à 15:44
En fait l'erreur et bcp plus grave que ça, le out of exception je l'ai plus (merci merci)mais j'ai tjr plus de valeurs de ce qu'il faut .en fait jai fait qlq tests :
tout d'abord j'affiche la taille de myarray une fois je le déclare et ça donne length=0 donc c inutile de le vider et juste apprés j'appelle ma méthode myarray = myweb.getListdesc();
et je ré affiche de nouveau length de myarray et la ca donne 159
au lieu de 3 ( et 159 est le nombre de fois ke jai appelé ma méthode )
je comprends pas prkoi mon web service garde les anciennes valeurs (en dirais l'historique) pourtant son traitement est simple ( j'initialise 3 fois name et desc par des Chaine de caractéres et je les additionne dans une list et je retourne la liste)
en java ça fonctionne très bien, mais le c# me fait bien galéré
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010 29 mars 2010 à 15:59
Cooooooooool, c finit le cauchemar ça fonctionne
il faillait juste que je déclare ma list retournée par mon web service dans le corps de la méthode et pas avant et comme ca justement il part à chaque d'une nouvelle liste bien vide.
merci bcp Yohan tu m' as apporté une énorme aide.
je te remercie infiniment
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!