2009-08-13 3 views
0

J'interroge un service Web tiers et toutes les données ne semblent pas parvenir au gestionnaire d'événements. Lorsque je vois la requête/réponse dans le Moniteur réseau, je vois une collection d'objets de données contenant chacun deux variables de chaîne (nom, url) et deux tableaux (comptes, décomposition). Lorsque le gestionnaire de résultats reçoit les données et que je les affiche en mode débogage, la collection d'objets de données contient uniquement une variable de chaîne (nom). Qu'est-il arrivé à l'autre chaîne var (url) et aux deux tableaux (count, breakdown)? Une idée de ce que cela causerait, car il semble devenir corrompu avant d'atteindre le gestionnaire d'événements, mais après qu'il est reçu par le réseau? Est-ce probablement un problème IDE? Quelqu'un d'autre a vu ça? Merci d'avance.Flex - Variables SOAP dans le Moniteur réseau mais pas dans le gestionnaire d'événements

Répondre

0

Parfois, les types complexes ne sont pas dé-sérialisés correctement. Appelez-vous directement le service ou utilisez-vous des classes de proxy générées flexiblement?

Si vous êtes sûr que les chaînes sont dans le message de réponse SOAP, le mieux serait de placer un point de débogage dans la classe SOAPDecoder et de suivre la désérialisation.

Vous pouvez utiliser un outil tel que BURP pour intercepter les paquets http du message SOAP vers et depuis le service.

+0

Merci pour la réponse. En lisant la 'Sérialisation du Service Web Personnalisé' et ailleurs où je vois j'ai besoin de déboguer la classe mx.rpc.soap.ISOAPDecoder. Le problème est, je ne peux pas trouver ce fichier n'importe où. Ce n'est pas dans ce chemin pour SDK 3.3 ou 3.4 sur mon système. Des idées où je complique les choses? –

+0

Ouais c'est un embêtant à trouver! Votre meilleur pari est de créer une classe qui étend SOAPDecoder puis explorez-le et vous pouvez définir votre point de débogage. Son code complexe cependant - votre finit par arriver à XMLDecoder, où je pense. BONNE CHANCE! Laisse-moi savoir comment tu te débrouilles! J'ai fait une petite classe qui a fait le contraire pour quelqu'un d'autre sur ce formulaire, il voulait accéder à l'encodeur SOAP, il suffit d'échanger les noms autour de ce que vous voulez un modèle - http://stackoverflow.com/questions/1247273/how- pour-ajouter-un-plat-message-en-tête-à-un-flex-web-service-call/1249592 # 1249592 – Jon

+0

Génial! Faire des progrès On dirait que dans mon cas l'information est corrompue/changée/non incluse dans la fonction decodeBody() car elle passe tout dans la variable bodyXML, mais quand elle définit la variable soapResult.result, elle manque de ces variables manquantes. –

Questions connexes