2011-01-12 3 views
0

Ich konvertierte eine eigenständige Flex-App in ein Modul. Jetzt, da es ein Modul ist, wenn ich mich anmelde (und die Backend-Dienste anrufe), bekomme ich eine Sicherheits-Sandbox-Verletzung.Flex-Modul wirft Sicherheits-Sandbox-Verletzung

Der Handler Login wirft diesen Fehler String: 'Senden fehlgeschlagen', mit einem aussagekräftigeren: 'Channel.Connect.Failed Fehler NetConnection.Call.Failed: HTTP: Fehler: url:' http: // myURL: 8080/AppManager/Nachrichtenbroker/amf '.

Dann löst die FB-Konsole einen 'nicht behandelten Sicherheits-Sandbox-Verletzungsfehler' aus.

Kann das Konvertieren einer App in ein Modul eine Sandbox-Verletzung verursachen?

Vielen Dank für hilfreiche Tipps.

+0

Da sich ein Flex-Modul in der gleichen Sicherheitsdomäne befinden muss wie die Anwendung (SWF), die es lädt, muss sich jede Modul-SWF beim Verwenden von Modulen in einer AIR-Anwendung im selben Verzeichnis wie die Hauptanwendung SWF oder befinden eines seiner Unterverzeichnisse, das dafür sorgt, dass sich die Modul-SWF wie die Hauptanwendungs-SWF in der Sicherheits-Sandbox der AIR-Anwendung befindet. Eine Möglichkeit, dies zu überprüfen, besteht darin, sicherzustellen, dass eine relative URL für den Speicherort des Moduls nicht die Notation "../" ("up one level") erfordert, um außerhalb des Anwendungsverzeichnisses oder eines seiner Unterverzeichnisse zu navigieren. – shaunhusain

+0

^das ist von der Adobe-Dokumentation, auch neugierig, obwohl es eine Anfrage für die crossdomain.xml-Datei, Debugging mit Firebug oder Charles wird wahrscheinlich helfen, ein wenig genauer zu sehen, was ist und was nicht passiert – shaunhusain

Antwort

1

Ich mache ausgiebig Gebrauch von Modulen und bin nicht darauf eingegangen. Es gab Speicherprobleme, die ich beheben musste, indem ich tatsächlich eine Instanz der Module in den Hauptmodulen deklarierte ... Ich musste keine Instanz erstellen, einfach eine Variable deklarieren, um die Verknüpfung richtig zu machen, und dann alle haben die anderen Module kompilieren gegen dieses Hauptmodul. Speicherfehler gingen weg, und alle anderen Module waren auch viel kleiner.

+0

@shaunhusain: meine Shell zeigt auf die Module a la: testModuleInfo = ModuleManager.getModule ('assets/modules/TestModule.swf'); ... also bin ich mir ziemlich sicher, dass ich in der gleichen Sicherheitsdomäne wie die Shell bin. Das Modul, mit dem ich Probleme habe, lädt jedoch seine XML-Konfigurationsdatei a la: new URLRequest ('./assets/modules/TestConfig.xml')); Könnte das das Problem sein? Und wenn ja, wie? – fumeng

+0

Wird das von einer Datei oder einem Webserver geladen? Und eine Nachrichtenbroker-Nachricht bedeutet normalerweise, dass es ein BlazeDS oder etwas ähnliches gibt. – mezmo

+0

Ja, ich verwende Blazed und die Datei wird von einem Server geladen. – fumeng