偶然發現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依然沒有生成這句代碼,無奈隻有手動添加
希望能幫到大家!