新浪SAE的Java開發初學手記(附demo)

來源:互聯網
上載者:User

  最近抽空研究了一下新浪的SAE,光看特性確實非常吸引人,就是模仿GAE做的。對於中小開發人員而言,按資源消耗付費,並且有極其強大的伸縮性,真的是一個絕佳平台。理念很好,但用起來卻有點費勁,可能其Java功能還在公測中,很多東西不完善。

文檔和社區

  新的平台首先當然是看文檔和社區。其實文檔寫的還算詳細,對入門而言還是能比較快接受,但是對技術細節說明非常少,很多地方用語也不嚴謹,比如說對java架構有限制,卻不說怎麼限制的,限制到什麼程度。社區這部分也只能說一般,活躍度比較低,提個問題半天沒人解答,官方人員也是挑著問題解答,有些問題直接就沒人管了。但bug反饋回複比較及時,這點比較贊。

Java應用測試

  不自己動手自然不能有更深的理解,在做demo測試的時候花了將近一天時間,主要是因為官方文檔交代不詳細只能自己反覆測試,以及一個比較鬱悶的bug給耽誤了。簡單說一下幾點經驗:

1. 特別注意:發布包不能有servlet-api-2.5.jar,web程式肯定會用到這個,本地運行都是正常的,但是發布到sae上有這個jar,程式就會報錯。

2. Java程式本地完全是類比,由於和伺服器上環境還是有不少差異,所以一切只能以線上運行為準,最好部署上去以後還能再跑一邊測試才靠譜。

3. Web容器建議選用jetty7,因為sae上用的是這個。eclipse對應外掛程式的是http://wiki.eclipse.org/Jetty_WTP_Plugin/Jetty_WTP_Install

4. 由於sae是叢集環境,所以必須按叢集方式編寫代碼,需要多個容器共用的變數放到memcache或者資料庫中,當然這是屬於常識範疇。

5. 本地開發環境資料庫使用者名稱和密碼不要使用SaeUserInfo.getAccessKey()和SaeUserInfo.getSecretKey(),在sea-local.jar中是返回一個隨機值,貌似mysql可以設定一個any的使用者,但是這些自己弄太麻煩了,還是最好把這個資訊寫到設定檔裡面,發布的時候進行修改。

6. sae文檔中說對架構有限制,根據測試應該是對某些架構的進階功能有限制,比如需要利用到反射、容器支援之類的進階特性,對於工具類的jar應該沒有限制。我用gson、ibatis、c3p0做簡單測試都可以正常運行。註:串連池建議選用最新版本的dbcp,這個在同時串連讀庫和寫庫的時候比較穩定)

7. mini sae貌似就不是給Java測試用的,因為下載下來直接是個沒有解壓的war包...另外上面的資料庫還不知道使用者名稱對應密碼。

總結

  sae這個東西理念和實用價值都是很大,但是目前文檔、樣本、技術公開性都還不夠,希望這個平台能快速發展,日後真正成為一個中小開發人員的活躍地。

DEMO下載

  附件是一個在sae上使用了spring2.5 + structs2 + ibatis2.3.4的demo,資料採用了json形式返回。自己在學習過程中花了不少時間,為了協助大家節約sae中java開發的學習成本,並省去建立測試專案的繁瑣工作,所以特別把自己測試工程整理成demo並發布。祝大家使用愉快!如果發現該demo的問題,可以用新浪微博@畢成功passover)給我留言。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.