Fortemente-digitato oggetto SOAP con Flex 3

19 maggio 2008 da Mickael Ruellan

Dopo il post Matsiya sull'uso di SchemaTypeRegistry per consentire la conversione di oggetti provenienti da un Web Service SOAP in AS3 classi, ho cominciato a pochi esperimenti. L'uso è molto semplice e permette per la mappatura SOAP Oggetti complexType tipo classi AS3 oggetti di sua scelta, dichiarando solo il proprio nome e nomi di oggetto, come descritto nel file WSDL del Web service.

Ad esempio, immaginare che il servizio Web restituisce un elenco di utenti e si desidera recuperare l'elenco in una classe denominata "UserArray", che in realtà è un array di oggetti di tipo "Utente". Basti dire l'associazione prima di chiamare il servizio Web da

SchemaTypeRegistry.getInstance (). RegisterClass (nuovo QName ( "http://www.flex-info.fr/", "userArray"), UserArray);
SchemaTypeRegistry.getInstance (). RegisterClass (nuovo QName ( "http://www.flex-info.fr/", "utente"), l'utente);

Il risultato restituito dalla ResultEvent poi contiene una classe che contiene le classi UserArray utente.

L'immagine qui di seguito illustra il processo:

SchemaTypeRegistry

Come evidenziato Matsiya, peccato non ci sia più comunicazione su questo aspetto della mappatura dei dati tra i servizi Web SOAP e Flex (Flex solo 3). Mi auguro che questo post è coinvolto ...

Aggiornamento: Per essere più completi, le classi AS3 oggetti devono essere scritti con un minimo di loro proprietà, come semplice e può includere funzioni agli oggetti. Esempio di classe per l'utente:

pacchetto (
classe pubblica utente
(
var IDUS pubblico: Numero;
pubblico var login: String;
pubblico var mail: String;
pubblico var nome: String;
pubblico var password: String;
)
)

UserArray classe l'esempio è in realtà una proroga del ArrayCollection classe, ma è necessario se non un semplice ArrayCollection è sufficiente.

Quando un sistema di mappatura e di sincronizzazione classi Java, PHP o altre classi di AS3? Il ne manque plus que ça ... non?

Inoltre: sembra che la mappatura non funziona bene con i servizi Web di tipo "documento / letterale" generato da Axis 1. Il passaggio in "RPC / codificati" risolve il problema ...

Se venite per la prima volta il Flex-info.fr, puoi iscriverti al feed RSS. Grazie per la vostra visita!

1 étoile2 étoiles3 étoiles4 étoiles5 étoiles (1 voti, 1,00 su 5)
Loading ... Caricamento in corso ...

5 commenti a questo post

  1. realmadyo Dice:

    Ciao,

    Sarebbe possibile completare il flex esempio fornendo il vostro progetto? Vorrei sapere cosa fare in dettaglio, si deve attuare una classe di tipo userArray perché dobbiamo dichiarare il tuo userArray e quindi si tratta di un tipo ... (e quindi come si scrive questa categoria).

    Grazie per il vostro aiuto.

  2. Romano Dice:

    Ciao,
    la ringrazio per questo articolo che mette in evidenza un po 'di esercizio e documentato molto pratico. Tuttavia, come si nota nel suo aggiornamento, è necessario dichiarare tutte le variabili nella classe di oggetto. E quindi impedisce qualsiasi tipo di classe "dinamica".
    Come il vostro esempio è completato la classe UserArray, questo oggetto può essere inviato come ha un sapone (che naturalmente come il parametro complexType userArray?)
    Per ottenere una reale impressione di sychronisation dati?
    Grazie per la risposta.

  3. Mickael Ruellan Dice:

    Romain Ciao,

    Hai ragione a dire, AS3 oggetti creati possono essere inviati come è il servizio Web, se il tipo corrisponde al tipo previsto, se un semplice oggetto o un oggetto complesso.
    In linea generale, è sufficiente inviare un oggetto con almeno le proprietà attesi dal servizio web che questo oggetto è codificato nel corrispondente tipo.

  4. Julien Dice:

    Ciao, io uso i servizi web ora dopo l'utilizzo del telecomando Oggetti, e purtroppo non ho ricevuto tale mappatura di buona qualità. In effetti dopo aver usato il tuo metodo di ottenere molti oggetti di tipo desiderato, ma ancora nulla di campi. Dopo la verifica dei flussi E4X, i dati vengono trasferiti, ma non mappati. E 'il web per i servizi o beni qualcos'altro.
    Grazie

  5. Mickael Ruellan Dice:

    Dopo la ricerca con Julien, la mappatura non è fatta correttamente con i servizi web generato da Axis 1 nel "documento / letterale". Cfr. inoltre, alla fine dell'articolo ...

Scrivi un commento

Iscrizioni

  • Add to My AOL
  • Aggiungi a Google
  • Aggiungi ai Zune
  • Aggiungi ai Netvibes
  • Add to Technorati
  • Aggiungi al Mio Yahoo
  • Aggiungi ai Zune

Indagine

Come faccio a trovare il nuovo Flex-info.fr?

Vedi Risultati

Loading ... Caricamento in corso ...

Mugsho