2009-10-16 8 views
1

MISE À JOUR: Le problème n'a pas à voir avec ou flex namespaces du tout. Mon service Web renvoyait le fichier compressé xml. Je blâmais la langue avec laquelle j'avais moins d'expérience avant d'interroger le java ...flex pour lire XML au format e4x de SOAP WebService

J'ai un webservice de base de savon que j'ai de la difficulté à lire le résultat de flex. Je suis un programmeur java solide et j'essaie juste de comprendre adobe flex.

Dans le documentation je devrais être en mesure d'utiliser "WebService" pour retourner le résultat au format e4x.

<mx:WebService id="CurrentLayersWS" wsdl="http://localhost:8080/myproject/ws/myservice.wsdl" showBusyCursor="true" result="updateSelected(event)" fault="Alert.show(event.fault.faultString), 'Error'"> 
     <mx:operation name="publisher" resultFormat="e4x"> 
     <mx:request> 
     <publisherRequest> 
      <getConfiguration/> 
     </publisherRequest> 
     </mx:request> 
     </mx:operation> 
    </mx:WebService> 

Comme vous pouvez le voir, la réponse est gérée par la fonction « updateSelected » qui ressemble à quelque chose comme:

private function updateSelected(event:ResultEvent):void { 
    var responseXml:XML = XML(event.result); 

Malheureusement, l'objet événement semble imbriquée et étrangement codé. Lorsque je fais un pas creux avec le débogueur, je vois que responseXml est de type XMLList contenant un élément (à l'index 0) de type XML qui contient tout le code XML suivant:

<sch:temp xmlns:sch="http://www.mycompany.co.uk/myproject/schemas" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    &lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt; 
&lt;ns2:publisherResponse xmlns:ns2="http://www.mycompany.co.uk/myproject/schemas"&gt; 
    &lt;getConfigurationResponse&gt; 
     &lt;configuration&gt; 
     ...etc 

Pourquoi mon xml imbriqué dans un document avec un nœud racine "sch: temp"?

+0

Je pense que le problème est avec le wsdl. Ouvrez http: // localhost: 8080/myproject/ws/myservice.wsdl dans votre navigateur pour voir le contenu - utilisez la source de vue pour voir le contenu exact. – Amarghosh

Répondre

0

Le problème ne concernait pas les espaces de noms ou les flexions du tout. Mon service Web renvoyait le fichier XML compressé. Je blâmais la langue avec laquelle j'avais moins d'expérience avant d'interroger le java ...

0

C'est un espace de noms. Je ne sais pas pourquoi c'est là, mais, j'ai dû faire face à quelque chose de similaire après avoir commencé à consommer .NET WebServices dans l'une de nos applications Flex. Je devais simplement faire référence à l'espace de noms dans mon code ActionScript:

<mx:Script> 
    <![CDATA[ 
     private namespace schNamespace = "http://www.mycompany.co.uk/myproject/schemas"; 

     use namespace schNamespace; 
    ]]> 
</mx:Script> 

essayer ... il peut fonctionner.

Questions connexes