Domanda

sto usando BlazeDS a distanza alcuni oggetti Java che sto consumando in un'applicazione Flex. Sto ottenendo un errore di coercizione tipo con una delle mie classi che non posso per la vita di me a capire. Ho altre classi che stanno lavorando bene usando gli stessi tipi di dati, e ho superato il mio mappare una dozzina di volte. Sto seguendo tutte le convenzioni necessarie per getter e setter per quanto ne so ...

In ogni caso, la mia domanda è: come posso eseguire il debug di questo problema in esecuzione App Flex in modalità debug sputa fuori alcuni errori generici alla console che in realtà non aiutano molto (TypeError: Error # 1034: Tipo coercizione non riuscita: impossibile convertire oggetto @ 5d1d809 a valueObjects.SomeClass)

..

Sono nuovo di questa cosa AMF / Flex + Java, quindi qualche consiglio sarebbe molto apprezzato.

È stato utile?

Soluzione

Questi sono due degli strumenti che uso quando si lavora con BlazeDS, AMF, ecc.

  • Utilizzare uno strumento proxy HTTP che mostra le chiamate tra il client e il server, come Charles
  

Charles è un proxy HTTP / HTTP   monitor / Reverse Proxy che consente un   sviluppatore di visualizzare tutto il HTTP e   SSL / HTTPS traffico tra loro   macchine e Internet. Questo   include le richieste, le risposte e la   intestazioni HTTP (che contengono la   cookie e le informazioni cache).

  • Attiva la registrazione per BlazeDS . All'interno WEB-INF/conf/services-conf.xml, abbassare il livello di debug a 'debug' come nella snippit di seguito. L'uscita, che è abbastanza dettagliato, apparirà {tomcat-home}/logs/localhost.yyyy-mm-dd.log

    <target class="flex.messaging.log.ConsoleTarget" level="debug">

Altri suggerimenti

Il modo più semplice per controllare la comunicazione tra di servizio-clienti messaggi di AMF è di usare Firefox, installare FireBug estensione e aggiungere il AMF Explorer . È possibile vedere le richieste e le risposte strutturate.

La classe Java che viene deserializzare sul lato client deve avere un riferimento a un oggetto della classe AS3 corrispondente all'applicazione (mxml o AS3). In caso contrario, la classe AS3 non verrà caricato nel file SWF e si tradurrà in deserializzazione la classe Java a un oggetto AS3 generico.

aggiornamento Questo accadrà pur avendo la mappatura, getter e setter. Basta dichiarare un oggetto della classe AS3 corrispondente nella sezione dello script del vostro MXML.

I utilizzare Flex Builder e lo hanno impostato per client e server il debug lato. E 'stato un dolore per impostare in un primo momento, ma è possibile Google per tutorial step-by-step. Lo trovo molto prezioso per il debug RPC. Ultima volta che ho controllato, Flex Builder ha una prova gratuita ed è libero di studenti e disoccupati.

E 'anche interessante notare che la strumentazione in Java può anche causare una perdita di informazioni e / o interferire con il processo di serializzazione e flusso.

Ho sperimentato questo TypeError: Error #1034: Type Coercion failed su un progetto (Flex <-> BlazeDS + primavera) in cui è stato attuato il nostro strato di accesso ai dati con iBatis ed aveva lazy-carico acceso - abbiamo spenta come tale misura ha rappresentato la perdita minore di efficienza (in teoria, almeno), rispetto ad altre soluzioni alternative che abbiamo avuto in atto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top