Frage

Ich bin mit BlazeDS zu entfernten einige Java-Objekte, die ich in einer Flex-Anwendung verbrauchen. Ich erhalte eine Art Zwang Fehler mit einem meiner Klassen, die ich kann nicht für das Leben von mir herauszufinden. Ich habe andere Klassen, die fein mit den gleichen Datentypen arbeiten, und ich habe über meine Abbildung ein Dutzend Mal gegangen. Ich verfolge alle notwendigen Konventionen für Getter und Setter, soweit ich weiß ...

Wie auch immer, meine Frage ist: Wie kann ich dieses Problem debuggen im Debug-Modus, um die Flex App laufen auf der Konsole einige allgemeine Fehler ausspuckt, die nicht wirklich viel helfen (Typeerror: Fehler # 1034: Typ Coercion fehlgeschlagen: kann nicht Objekt @ 5d1d809 zu valueObjects.SomeClass konvertieren)

..

Ich bin neu in dieser ganzen AMF / Flex + Java Sache, so würden alle Tipps sehr geschätzt.

War es hilfreich?

Lösung

Dies sind zwei der Werkzeuge, die ich verwenden, wenn sie mit BlazeDS arbeiten, AMF, etc.

  • Verwenden Sie ein HTTP-Proxy-Tool , das die Anrufe zwischen dem Client und dem Server zeigt, wie Charles
  

Charles ist ein HTTP-Proxy / HTTP   Monitor / Reverse-Proxy, der ermöglicht eine   Entwickler alle HTTP zu betrachten und   SSL / HTTPS-Datenverkehr zwischen ihren   Maschine und das Internet. Diese   enthält Anforderungen, Antworten und die   HTTP-Header (die die enthalten   Cookies und Cache-Informationen).

  • Aktivieren Sie die Protokollierung für BlazeDS . Innerhalb WEB-INF/conf/services-conf.xml, senken Sie die Debug-Ebene zu ‚debug‘ wie in der unten snippit. Die Ausgabe, die ziemlich detailliert, wird in {tomcat-home}/logs/localhost.yyyy-mm-dd.log erscheint

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

Andere Tipps

Der einfachste Weg, auf dem die Kommunikation zwischen Service-Kunden AMF Nachrichten zu lesen ist FireFox zu verwenden, installieren Sie FireBug Erweiterung und fügen Sie die AMF Explorer . Sie können die strukturierten Anfragen und Antworten sehen.

Die Java-Klasse, die in der Client-Seite deserialisiert wird, muss eine Referenz auf ein Objekt der entsprechenden AS3 Klasse hat in der Anwendung (mxml oder AS3). Andernfalls wird die AS3-Klasse nicht in der SWF-Datei geladen werden und in Deserialisieren die Java-Klasse zu einem allgemeinen AS3 Objekt führen wird.

aktualisiert Dies geschieht die Zuordnung, Getter und Setter trotz. deklariert nur ein Objekt der entsprechenden Klasse AS3 in Skript-Abschnitt Ihrer mxml.

Ich verwende Flex Builder und haben es sowohl für die Client- und Server-Seite Debuggen einrichten. Es war ein Schmerz zunächst einzurichten, aber Sie können Google für Schritt-für-Schritt-Anleitungen. Ich finde es sehr wertvoll RPCs für die Fehlersuche. Zuletzt habe ich geprüft, hat Flex Builder eine kostenlose Testversion und ist für Studenten und Arbeitslose frei.

Es ist auch erwähnenswert, dass die Instrumentierung in Java kann auch einen Datenverlust führen und / oder mit der Serialisierung und Strom stören.

Ich habe diese TypeError: Error #1034: Type Coercion failed an einem Projekt erfahren (Flex <-> BlazeDS + Frühling), wo unsere Datenzugriffsschicht mit iBatis umgesetzt wurde und war faul-Laden eingeschaltet - wir drehten es ab, wie diese Maßnahme den geringeren Verlust vertreten wie Wirkungsgrad (zumindest theoretisch), zu anderen Abhilfen verglichen hatten wir an seinen Platz.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top