天天看點

blazeds TypeError: Error #1034: 強制轉換類型失敗

偶然發現Flash Builder 的 資料/服務頁籤可以生成服務類和對應Java的VO類,感覺很友善

在使用時遇到一點問題,記錄一下

我有一個Enterprise類,Enterprise類中有一個Area對象

傳回給Flex的時候出現錯誤TypeError: Error #1034: 強制轉換類型失敗:無法将 Object@f9a2539 轉換為 valueObjects.Area

查了很久也不知道為什麼,有一種解決辦法是在Application上聲明 

private var area:Area;      

這樣确實可以,但是我不可能把所有的VO類都聲明在Application上吧?!

Google了大半天發現也有人遇到類似的情況,就是沒有一個解決方法

http://forums.adobe.com/message/3114173

終于讀到老外的文章最後發現一句

We may have seen a similar issue. The problem was that in the generated services as file,

not all _initRemoteClassAlias initializers were called.

Note that this was only on my colleagues FB4.0.1 version.

The code generated in my own FB4.0.0 works correctly.

Can you check whether both valueObjects.A._initRemoteClassAlias() and valueObjects.B._initRemoteClassAlias()

are in your generated service file ?

原來問題不在生成的VO類裡,而是在service類裡沒有進行初始化操作!

最後檢查_Super_EnterpriseRemote類,和其他service比較後發現

// initialize RemoteClass alias for all entities returned by functions of this service      

這句注釋下沒有valueObjects.Enterprise._initRemoteClassAlias();

手動加上就好了,我試過删除後重新生成,但是Flash Builder依然沒有生成這句代碼,無奈隻有手動添加

希望能幫到大家!

blazeds TypeError: Error #1034: 強制轉換類型失敗