Question

J'écris une application Flex qui exploite pleinement BlazeDS sur un serveur Java. J'utilise beaucoup les objets distants, mais je suis tombé sur une instance dans laquelle recevoir du XML est plus propre et plus rapide que de renvoyer des objets.

Renvoyer du XML via BlazeDS est assez simple. Je construis le code XML avec Dom4j sur Java et renvoie l'élément racine via le service BlazeDS. BlazeDS traduit pour moi les objets Dom4j en XML.

Lors de la réception de ces objets du côté Flex, il existe tous les objets ObjectProxy plutôt que XML. J'ai déjà vu cela auparavant dans un appel HttpService, et pour remédier à cela, j'ai changé le resultFormat en E4X.

Cependant, je ne peux pas définir un resultFormat sur un appel de service RemoteObject.

Est-il possible de convertir ces ObjectProxies au format XML formaté E4X?

Était-ce utile?

La solution

De même, si vous renvoyez du XML en tant que chaîne ou en tant que type XML formel, vous pouvez le convertir en objet XML côté client dans Flex.

Autres conseils

Pour répondre à votre question:

  

Avec le service de communication à distance, vous utilisez souvent un canal AMFC. Le AMFChannel utilise binaire AMF   encodage sur HTTP. Si les données binaires ne sont pas autorisées, vous pouvez utiliser un HTTPChannel, qui   est AMFX (AMF en XML) sur HTTP.

et

http: // vécu .adobe.com / blazeds / 1 / javadoc / flex / messagerie / io / amfx / package-summary.html

Le format de données de RemoteObject est binaire AMF. Vous devriez donc peut-être utiliser plutôt la classe WebService ou HTTPService si vous souhaitez utiliser XML (AMF serait plus rapide; peut-être perdriez-vous la vitesse si vous travaillez avec XML - vous n'êtes pas sûr d'AMFX ).

LiveCycle semble également avoir un sérialiseur similaire:

http : //livedocs.adobe.com/livecycle/8.2/programLC/programmer/javadoc/flex/messaging/io/amfx/package-detail.html

J'espère que ce gâchis sera utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top