acidburnjo
Messages postés3Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 6 juillet 2007
-
3 juil. 2007 à 15:31
acidburnjo
Messages postés3Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 6 juillet 2007
-
4 juil. 2007 à 10:45
Bonjour,
je rencontre un problème dans l'utilisation d'un webservice qui utilise une classe particulière:
Coté webservice:
[WebMethod]
public void addMyObjectToStack(String userID, String stackID, MyObject currentObject)
{
}
La classe MyObject est défini côté webservice et côté client (C'est exactement la même classe)
Côté client:
Je créé un objet MyObject et je souhaite invoqué le webservice. Le problème c'est que le compilo me lève Class Cast Exception car il s'attend à voir un objet du type MonWebservice.MyObject.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 4 juil. 2007 à 10:38
Donc les 2 classes côtés client et services ne sont pas identiques ?
Dans ce cas tu n'a pas le choix, tu dois utiliser la classe côté service pour l'appel de service. Et ensuite, selon ce que tu veux faire côté client :
- si tu veux fournir en entrée la classe demandée alors tu dois être capable de créer une instance de la classe "service" depuis la classe "client"
- si tu veux récupérer en sortie de ton service la classe en question alors tu dois être capable de créer une instance de la classe "client" depuis la classe "service"
Si tu peux modifier librement ces 2 classes, ça ne pose pas de problème : pour créer une classe A à partir d'une classe B, il te suffit par exemple de rajouter à A un constructeur qui prend B en paramètre (et recopie soit toutes les propriétés de B, ou bien directement une référence vers B - et tu utilise ensuite B par délégation)
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 3 juil. 2007 à 18:02
Le type "MonWebservice.MyObject" doit être public. Dans ce cas, pourquoi ne travaille tu pas côté client avec ce type ?
Tu déclares ta variable comme étant du type MonWebService.MyObject et tu pourra l'utiliser directement (s'il s'agit exactement de la même côté client et service ça ne sert à rien de la dupliquer).
acidburnjo
Messages postés3Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 6 juillet 2007 4 juil. 2007 à 10:26
Le problème c'est que la classe MyObject est une composition de plusieurs classes. Si j'utilise le type MonWebservice.MyObject je n'est plus accès aux classes composants cet objet.