Ich verwende BlazeDS, um einige Java-Objekte zu entfernen, die ich in einer Flex-Anwendung verwende. Ich bekomme eine Art Zwangsstörung mit einer meiner Klassen, die ich nicht für mein Leben herausfinden kann. Ich habe andere Klassen, die mit den gleichen Datentypen funktionieren, und ich bin ein Dutzend Mal über meine Zuordnung gegangen. Soweit ich weiß, befolge ich alle notwendigen Konventionen für Getter und Setter ...
Wie auch immer, meine Frage lautet: Wie kann ich dieses Problem beheben? Beim Ausführen der Flex-App im Debug-Modus werden einige allgemeine Fehler an der Konsole ausgegeben, die nicht wirklich helfen (TypeError: Error # 1034: Type Coercion failed: Objekt @ 5d1d809 kann nicht in valueObjects.SomeClass konvertiert werden.).
Ich bin neu in dieser ganzen AMF / Flex + Java Sache, also würden alle Tipps sehr geschätzt werden.
Dies sind zwei der Werkzeuge, die ich bei der Arbeit mit BlazeDS, AMF usw. verwende.
Charles ist ein HTTP-Proxy / HTTP Monitor / Reverse Proxy, der a Entwickler, um alle HTTP und SSL / HTTPS-Verkehr zwischen ihren Maschine und das Internet. Dies enthält Anfragen, Antworten und die HTTP - Header (die den Cookies und Caching-Informationen).
Schalte die Protokollierung für BlazeDS ein . Verringern Sie in WEB-INF/conf/services-conf.xml
die Debugging-Ebene auf " debug
" wie im folgenden Snippit. Die Ausgabe, die ziemlich detailliert ist, erscheint in {tomcat-home}/logs/localhost.yyyy-mm-dd.log
& lt; target class="flex.messaging.log.ConsoleTarget" level="debug"
& gt;
Am einfachsten können Sie die Kommunikation zwischen AMF-Service-Clients überprüfen, indem Sie FireFox verwenden, die Erweiterung FireBug installieren und das AMF-Explorer . Sie können die strukturierten Anfragen und Antworten sehen.
Die Java-Klasse, die auf der Clientseite deserialisiert wird, muss einen Verweis auf ein Objekt der entsprechenden AS3-Klasse in der Anwendung haben (mxml oder as3). Andernfalls wird die Klasse as3 nicht in die SWF-Datei geladen und führt dazu, dass die Java-Klasse zu einem generischen as3-Objekt deserialisiert wird.
aktualisiert Dies wird trotz der Zuordnung, Getter und Setter passieren. Deklarieren Sie einfach ein Objekt der entsprechenden AS3-Klasse im Skriptabschnitt Ihres mxml.
Ich verwende Flex Builder und lasse es sowohl für das Client- als auch für das Serverseitige Debugging einrichten. Es war ein Schmerz, zuerst einzurichten, aber Sie können Google für Schritt-für-Schritt-Anleitungen. Ich finde es sehr nützlich für das Debugging von RPCs. Zuletzt habe ich überprüft, Flex Builder hat eine kostenlose Testversion und ist kostenlos für Studenten und Arbeitslose.
Es ist auch erwähnenswert, dass die Instrumentierung in Java auch einen Informationsverlust verursachen und / oder den Serialisierungsprozess und -strom stören kann.
Ich habe dieses TypeError: Error #1034: Type Coercion failed
in einem Projekt (Flex & lt; - & gt; BlazeDS + Spring) erlebt, wo unsere Datenzugriffsschicht mit iBatis implementiert wurde und Lazy-Loading eingeschaltet war - wir haben es ausgeschaltet, wie diese Maßnahme darstellt der geringere Effizienzverlust (theoretisch zumindest) im Vergleich zu anderen Workarounds, die wir hatten.