跳到主要內容

雲端的開始:Netbeans 無痛 Google App Engine Java 服務開發

Google 自2008年發布第一個App Engine beta版本(for Python)後,
終於在2009年4月公佈正式支援Java 程式語言,
如此一來,透過Google App Engine以Java 進行免費的雲端運算應用開發就再也不是問題了。

那到底用AppEngine有什麼好處呢?

我想對系統開發或外包接案的人來說,不用額外租設主機、容易管理與建設就是很大的誘因了,更何況它可以直接整合Google Apps的其他服務(協作平台、blog、docs 、AdSense.. ),
讓整個系統完全黏在Google上(當然這也是google的目的啦),甚至可以都免費使用,


以目前來說,
Google App Engine提供500 MB資料庫儲存空間與每個月500萬次頁面點擊的CPU和頻寬,
在系統營運初期幾乎是不用任何額外的費用。相關資料可以參考 Googla App Engine 資訊

Google App Engine介紹:
 


不過目前開發App Engine,除了使用Google提供的SDK tool 外,也只有Google Plugin for Eclipse
這對許多習慣使用不同開發環境(如:Netbeans)的程式設計員實在不夠方便,


好在Netbeans在6.7版後便支援App Engine Plugin使用,大大降低了開發App Engine Application的難度,
目前國內似乎還沒有很完整的設定教學,所以就來做一篇吧。

這裡使用的環境:
  • Windows Vista 64
  • Java Enterprise Edition 5、Java SE Development Kit 6 Update 12 - [Download]
  • Netbeans 6.8
  • Google Appengine-java-sdk-1.3.0 - [Download]

假設系統已有Jave環境與Netbeans ( 僅支援6.7版以上 ),並且已經在Google App Engine開啟帳戶與建立服務


即可開始以下設定與操作範例 :  (所有圖片皆可以點選放大)
1. 下載Google App Engine Java SDK並解壓縮到指定目錄 (Ex:  C:\Program Files\appengine-java-sdk-1.3.0\)
2. 進入Netbeans後選擇 Tools \ Plugins
image

3.選擇Setting並新增一Plugin 名稱,輸入Google App Engine,URL部份


NetBeans 6.7.1 輸入:
http://kenai.com/projects/nbappengine/downloads/download/1.0_NetBeans671/updates.xml
NetBeans 6.8 輸入:
http://kenai.com/projects/nbappengine/downloads/download/Latest_NetBeans68/updates.xml
NetBeans 6.9 輸入:
http://kenai.com/downloads/nbappengine/NetBeans69/updates.xml

image
擷取2


4. 建立後便會出現Google App Engine選項,此時Netbeans會自動下載套件,
    隨後Available Plugins便可以看到許多Google App Engine項目,全選後執行Install便會將套件安裝到Netbeans中。
擷取_4


5. 隨後到 Tools \ Servers中開啟本機Google App Engine伺服器並設定在本機端的port號
( Location 為你的Google Appengine位址,如:  C:\Program Files\appengine-java-sdk-1.3.0\)
image 擷取_7


6. 成功後便可以在專案框旁的Services中看到Google App Engine服務開啟
image


7.隨後便可以照正常 Web Application 專案方式建立應用程式,首先建立一個與帳戶中相同專案名稱的服務,
  並在Server中選責Google App Engine 後建立專案 (其他全部以預設設定)。

image

image

image


8. 這時候若你的系統環境設定沒有衝突( JAVA_HOME設定),便可以直接以Run執行該專案,
    即可透過預設瀏覽器看到由本機Google App Engine產生的結果(若不成功,請看文末注意事項)
image image


9.之後開始上傳你的應用服務,首先在專案上選[ Deploy To Google App Engine ]並輸入已申請的E-Mail與密碼

   Netbeans便會自動幫你上傳到你已申請的帳號當中 (若不成功,請看文末注意事項)

image image


10. 若上傳成功,在原本服務中的Application重新整理後便會由None Deployed變更為 1  (若不成功,請看文末注意事項)
image

image


11. 到這個步驟就大功告成了,直接點選Application後的 “1”即可看到屬於該服務的頁面
image


注意事項:


以上就是利用Netbeans 進行Google App Engine開發的簡單範例,
有這麼簡單嗎?  當然沒有上面講的那麼簡單!!
因為,大多會出現衝突的情況,通常可能會有以下狀況發生
  1. 找不到javac.exe,無法run 本機Google App Engine伺服器
  2. 找不到class
  3. 無法上傳到Google App Engine
1, 2. 的解決方式,是將環境變數中的PATH與CLASSPATH明確指定到jdk的 bin與lib下
3.的原因有幾種,若是path的問題可用上面的方式解決,但另外可能是JRE的衝突,
  JRE會鎖定JAVA_HOME的路徑,導致專案無法編譯上傳,所以若設定Path後仍無法解決,
  可以採取移除JRE的方式就可以解決,但若不想移除JRE,也有另一個比較麻煩的方式,
  就是打開Google App Engine Jave SDK套件裡的appcfg.cmd檔 (位在 appengine-java-sdk-1.3.0\bin )

  appcfg.cmd檔為App Engine套件進行上傳專案的工具

原始appcfg.cmd開頭內容為
@java -cp "%~dp0\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %*

請修改為直接指定你的java.exe檔,若安裝位址在C:\Program Files\Java\jdk1.6.0_12\bin,
則可改寫如下:
@"C:\Program Files\Java\jdk1.6.0_12\bin\java" -cp "%~dp0\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %*

通過上面的設定方式後,就可以正常進行專案上傳囉。

盡情享受雲端衝浪吧!!


                        BP  2010.01.05

相關文章:

留言

這個網誌中的熱門文章

醫學健康跨領域合作的開始:資料工程

一直都很喜歡在會議上與跨領域的專家、醫師、學者分享我們在數據工程與分析應用上的發展經驗。 許多的專家學者,對於大數據應用的認知都仍侷限在一個超大型結構化資料集的子集合應用,在規劃好的條件設定下,針對特定的目標(疾病、行為)進行篩選,將數據narrow down到可以被個人電腦或是單一伺服器架構處理的小型資料集。 這樣的半手工處理方式,對於專一(Specific)領域主題的資料追蹤計算或許已經十分足夠,但當中倘若資料清理方式有改變、篩選條件增減,所有的數據都要從raw重新處理,不僅造成大量的時間與人力浪費,對於專案計畫進度的延宕更是麻煩。這些還不包含

Google 資料庫方案–Spreadsheet–(1)資料呈現

HEMiDEMi 的標籤: Google , Google SpreadSheet , 雲端 早在規劃『 教育,意義! 』project時, 便有打算將整個網站建立過程撰寫一篇教學,讓有興趣以google 服務為基礎進行開發的朋友參考。 沒想到這個想法擺著就拖了好幾個月, 好在學生提出了問題,就趁這機會寫一寫吧。 基本上『 教育,意義! 』網站的架構完全建立在Google提供的服務, 廣義來說也是個雲端的系統, 所有的資料是分散在不同的服務架構下,再用GAE, Javascrript將服務資訊串接起來, 由Blogspot 統一呈現。 省了租主機的費用,或架站的硬體、電費, 最好的地方在於不用管理主機維運的問題, 只要專心做我的創意、嘗鮮就好了!!   多棒! 若將『 教育,意義! 』網站依功能層次來分類,可以分為三層結構, 當中的層次與使用技術大致如下: UI 介面層 服務 : Blogspot (網站介面) , Picasa (相簿空間), Google Apps 技術 : Javascript , AJAX ( JQuery ) App應用層  服務 : Google App Engine (GAE) 技術 : Java, Java Server Page (JSP) 資料層 服務 : Google Docs (文件), Google Spreadsheet (試算表) 技術/函式庫 : Java, Google Data APIs 本篇文章將著重在介紹以Google Spreadsheet 做為雲端資料庫, 其他主題將會陸續推出。 若對Google API 與 Google App Engine 初步建置有興趣, 可以參考之前文章: 佛心來著的 Google Data API – for JAVA 雲端的開始:Netbeans 無痛 Google App Engine Java 服務開發 Google Spreadsheet 做為資料庫系統 對於小型的資料系統來說, 採用Google Spreadsheet做為應用程式資料庫(如問卷調查或線上系統) 也算堪用, 目前的儲存限制為 : 40 萬個儲存格 每張工作表最多...

歡迎引戰的Threads演算法機制

  最近受到江老師 江振維的啟發,開始測試Threads的演算法機制,發現它驚人的傳播速度 先講成果,一篇thread文: 第17小時,10,689瀏覽,106則回覆 第24小時,22,122瀏覽,179則回覆  帳號追蹤數僅104位  簡單來說,Threads的機制跟過去Facebook大多鎖定在親朋好友社交網絡之間的內容不一樣,它會大量收集有相關興趣的人來觸及,內容散亂主題分散觸及效果越差,但太過專業不是一般人能理解的效果會更差,所以主題明確直白淺顯易懂,可以快速激發討論的內容,就是容易被擴散的。 這次實驗做了一個策略,文章很簡單,短短三行: 『小朋友為什麼不能學ai?  學生交作業為什麼不能用ai?  為什麼要阻礙進化?』 (文章連結) 策略設計 用爭議性內容(Controversial topics)並參考坎寧安定律(Cunningham's Law)方式,讓主題有開放性討論(疑問句、ai)、敏感性主題(小朋友、學生),最後錨定一個負面且帶有爭議性的價值論述 (阻礙進化),來引發討論 每一個回文,都按愛心 回覆一人只回一次,不深追討論 回覆時回疑問句(諷刺、引戰),但不評斷價值 結果~~ 碰🔥  快速大量瀏覽以及對立式發言,中午時刻短短三小時擴增5000人瀏覽,當回覆互動增加時,會在一個短時間內快速吸人進來討論,直到24小時後觸及就自動下降幾乎歸零。 對比前後實驗的發文,專業文、分享文,效果都非常有限。 可以了解,在這樣同溫特化以及互動至上的平台,"引戰"對於流量製造的效果非常好,但是否能產生導流效果,不得而知,未來可以再嘗試☕ 最後,我自己還是不喜歡這種操作, 認真看待事物、追求專業、理想與和諧,這種人格特質,對於製造混亂、誘發對立討論,雖然還是可以引導教育意義,但互動過於浪費時間、缺少實質回饋、仇恨言論造成心理疙瘩,這都是自己不喜歡的特性😅 還是留給有心理素質的人去玩吧! XD PAN 20240704 Reference Berger, J., & Milkman, K. L. (2012). What Makes Online Content Viral? "Content that evokes high-arousal emotions such as awe, anger, and anxiet...