2009-03-18 9 views
0

Mein Cairngorm-Programm führt eine vorläufige Authentifizierung gegen ein RemoteObject durch, bevor es Cairngorms ServiceLocator erlaubt, das gleiche RemoteObject zu verwenden, um Geschäftsdaten zu erhalten. Alles funktioniert gut mit Flex Builder, aber ich brauche einen Ant-Build. Der Ant mxmlc-Task kompiliert alles in Ordnung, aber zur Laufzeit schlägt der resultierende Code bei der Methode getService() in der Cairngorm-Klasse RemoteObjects fehl, weil er den Service nicht finden kann.Ant Flex-Problem

Könnte das vielleicht daran liegen, dass der Cairngorm-Code in der Ant-driven Kompilierung anders verknüpft ist? In der Datei von -dump-config resultierenden (und diese Datei ist in Ordnung, verwenden mit mxmlc auf der Befehlszeile) der einzige Hinweis auf die Cairngorm SWC ist in diesem Elemente:

 
<library-path> 
    <path-element>\path\to\directory\containing\Cairngorm.swc</path-element> 
</library-path> 

Das entsprechende Element in meinem Build. xml ist

 
<compiler.library-path dir="${basedir}" append="true"> 
    <include name="libs"/> 
</compiler.library-path> 

ich nichts sehen kann, die beeinflussen würden, wie Cairngorm verknüpft ist, abgesehen von einer expliziten Einstellung von statischen-link-Runtime-Shared-Bibliotheken auf true sowohl in dem FB-Ausgang und in meinem Build. XML. Vielleicht ist meine Linking-Theorie falsch? Aber was könnte Cairngorms Remote-Zugriff noch scheitern lassen, wenn der Zugriff von einer anderen SWF-Datei auf dasselbe RemoteObject in Ordnung ist?

Antwort

0

Es klingt wie die ANT Build könnte die -services Flagge fehlt in der services-config.xml Datei zu kompilieren, die die Remoteendpunkte konfiguriert.

In FlexBuilder sehen Sie sich die Projekteigenschaften an und navigieren zum Bereich "Flex Compiler". Sie sollten ein "Additional Compiler Arguments" Feld sehen. Stellen Sie sicher, dass diese zusätzlichen Argumente an die ANT-Kompilieraufgabe übergeben werden. Sie suchen nach etwas wie "-services services-config.xml"

+0

Danke für den Vorschlag - ich kann die Logik sehen - aber das ist es nicht. Das Argument -services, das ich für die Ant-Task verwende, ist dasselbe wie das im services-Tag der flex-config-Datei, die mxmlc verwendet. Aber eine seltsame Sache: Kompilation über Ant gibt keine Fehler, wenn ich das Argument -services direkt gebe - einfach den Dienst nicht finden - aber wenn ich es entferne, in der Hoffnung, dass die flex-config-Datei, die für mxmlc funktioniert, für den Ant-Task funktioniert Es besagt, dass es die Datei/exact same/file über die gerade geöffnete flex-config nicht öffnen kann. Nur eine weitere Besonderheit der Ant-Aufgabe? –