2016-10-25 4 views
0

Ich bin verrückt mit einem Fehler nicht fehlerfrei auf meiner Web-App Flex 3.6 basiert (mit BlazeDS). Ich versuche, mein Problem zu beschreiben: Ich habe eine Java-Klasse haben:Flex sehr seltsam Casting Fehler

public class User {...} 

und die Bindung eines in .as:

[Bindable] 
[RemoteClass(alias="it.dto.User")] 
public class User {...} 

Ich habe auch ein DataManager.as Async Aufruf wie dies zu tun:

public function getUser():void { 
    var token:AsyncToken = _service.getUser(); 
    token.addResponder(new AsyncResponder(userOnResult,userOnFault)); 
} 
private function userOnFault(event:FaultEvent,token:Object):void { 
    var _fail:String = "Error"; 
} 
private function socOnResult(event:ResultEvent,token:Object):void { 
    _resUser = event.result as ArrayCollection; 
    dispatchEvent(new MyEvent("USER_EVENT",_resUser)); 
} 

nun umgesetzt I den folgenden Code in zwei verschiedenen .as Datei (anderes Paket), die zu zwei verschiedenen .mxml bezieht:

var data:DataManager = new DataManager; 
.... 
data.addEventListener("USER_EVENT",userResult); 
.... 
data.getUser(); 
.... 
private function userResult(dataEvent:MyEvent):void { 
    var user:ArrayCollection = new ArrayCollection; 
    user = dataEvent.result as ArrayCollection; 
    for (var i:int = 0;i<user.length; i++) { 
     var u:User = new User; 
     u = (User)(user.getItemAt(i)); 
    } 
    _dm.removeEventListener("USER_EVENT",userResult); 
} 

Das Drama ist, dass in der ersten. Wie es perfekt funktioniert, und in der zweiten .as mir einen Fehler der Nötigung fehlgeschlagen. In der zweiten Datei scheint, wie es die User-Klasse nicht erkennen kann. Haben Sie eine Idee ?? Ich werd verrückt!! Danke

@Stacktrace Fehler:

TypeError: Error #1034: Type Coercion failed: cannot convert appcode.dto::[email protected] to appcode.dto.SocietaDTO. 
at modules::ReportIspezioni/onSocResult()[D:\workspace\maga\aga\flex_src\modules\ReportIspezioni_src.as:80] 
at flash.events::EventDispatcher/dispatchEventFunction() 
at flash.events::EventDispatcher/dispatchEvent() 
at appcode.dao::DataManager/socOnResult()[D:\workspace\maga\aga\flex_src\appcode\dao\DataManager.as:180] 
at mx.rpc::AsyncResponder/result()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AsyncResponder.as:82] 
at mx.rpc::AsyncToken/http://www.adobe.com/2006/flex/mx/internal::applyResult()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AsyncToken.as:199] 
at mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\events\ResultEvent.as:172] 
at mx.rpc::AbstractOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AbstractOperation.as:199] 
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:263] 
at mx.rpc::Responder/result()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:46] 
at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74] 
at NetConnectionMessageResponder/resultHandler()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:524] 
at mx.messaging::MessageResponder/result()[C:\autobuild\3.x\frameworks\projects\rpc\src\mx\messaging\MessageResponder.as:199] 

Obviusly die oben geschrieben Benutzerklasse ist nur beispielsweise den Code Logik zu verstehen. Die echte Klasse ist ein DTO ruft SocietaDTO. N.B: Der Code funktioniert perfekt in einem anderen Modul meines Projekts .. Ich verstehe nicht, warum hier nicht funktioniert.

Vielen Dank

+0

was der tatsächliche Fehler ist und stacktrace – Clintm

+0

@junior_developer, eine Antwort auf Ihre Frage bitte posten, wenn Sie diese nicht herausgefunden haben, als die Bearbeitung der Antwort auf die Frage Körper. – Brian

+0

Stellen Sie sicher, dass Sie den Browser-Cache geleert haben, bevor Sie nach dem Grund für unerwartetes Verhalten suchen. Vor allem, wenn Sie Module verwenden, könnte es alte SWF-Dateien im Cache geben, die Ihre Anwendung merkwürdig machen. – splash

Antwort

0

ich nie den Browser-Cache speichern, wenn .. Wie auch immer die Entwicklung löse ich das Problem durch das Hinzufügen von:

registerClassAlias("it.mec.dto.SocietaDTO", SocietaDTO); 

In der Klasse war Ausnahme Start.

Danke trotzdem