Granite Data Services – Flex on Java EE

前一陣子, 要開始改寫之前的 Flex 作品, 於是又回頭來看看 之前的 Flex ,
發現一陣子沒用到 Flex , 竟然開始多了 Blaze DS (Data Service), 
於是前兩週都針對 Blaze DS與 Flex 的整合來 Study,
直到….真的要開始用了….
由於Java Web 系統中, 我已經深深的嵌入了 Spring , 因此對於 Blaze DS的期望,
當然也就瞄準他在 Spring 的支援, 沒錯, 網路上的確有非常多的文章, 是寫Blaze DS對於 Spring的支援,
但實際使用過以後, 沒想到卻是問題連連, 令人失望…
1. 首先, AMF 的 Message 的傳遞, 就是個問題,  至少….我在 Eclipse 開發, 仍必須手動修正  flex/services-config.xml  !!…
2. Spring 所建立的 instance 物件, 竟然沒有 auto-mapping 到相關的物件格式, 而必須要依賴開發者自己 mapping !!…
3. 安全性的支援不夠, Spring 明明就有 Spring Security, 我不懂為何 Blaze DS 竟然只支援 JBoss 或是 Tomcat 的 密碼認證
    卻忘記支援 Spring Security認證!!…
光是以上這三點, 就足以令開發者怯步, 更遑論他的效能有多差!!….
 
於是只好轉向到另外的一個 Granite DS, ( 花崗岩Granite 終究是比火大Blaze 的 要"硬"多了!!… )
但是, 我必須承認 Granite DS 上手確實不容易, 更何況 是要加入 Spring 支援!!….
Granite DS 目前已經推出 2.0 RC1 的版本, 下載以後裡面其實有一些 Example 可以試用看看,
坦白說, 我也玩了好幾天, 這才成功!!….因為我是執行在 Tomcat 上, 因此, 其中還遇到了 Transation 的問題哩!!….
反正問題一堆, 最終都獲得解決….其中有一些是屬於 Spring 的本身問題, 這邊就不討論了,
單純屬於 Granite DS 的問題, 有兩項這邊倒是值得提出來討論:
1. 利用 Eclipse 開發時, 記得要改 flex/services-config.xml 這樣才有機會抓到 RemoteObject
2. 由於它的Spring範例, 是提供 EntityManagerFactory, 和一般我們直接利用 EM 來存取資料庫不大相同,
    em 存取時, spring 會被自動注入, 但是 emf 卻變成需要在 applicationContext.xml 中設定 default-autowire="byName"
3. 存取物件時, 如果 出現"ArgumentError: Error #2173" 那肯定是 Compiler 時, 未加入適當的 library,
     因此, 只需要 加入 -include-libraries "../flex_libs/granite-essentials.swc" "../flex_libs/granite.swc" 即可
     注意順序, granite-essentials.swc 先, granite.swc 後….
 
相信這樣應該是可以的…
另外我還發現 Flex 直接支援 UTF-8 , 因此, 如果 無法塞入中文, 請詳細檢查你的 資料庫格式!!….
 
 
 
 
 
廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s