2010-07-11

攀上雲端記要

週四的Java訓練課程,看到毛老師成功地將會員管理套件中的 “加入會員" 功能,成功地部署到了 Google App 雲端,心中真是興奮極了。因為我想既然老師己成功地達陣,那我只要照著做,也就可以跟著攀上 Google 雲,享受漫步雲端的成就感。

奈何,結果卻是執行的結果像月亮--初一、十五不一樣。我就是做不出跟老師一樣的結果。從週四 5:00 PM 下課後,到週五整天,甚至在整個週末,我的雲端攀爬記,總是摔倒在地。好不容易,到了週日的 4:57 PM ,我終於有了具體的成果。

這幾天的奮鬥,屢有奇怪的遭遇,有些可以解釋;但也有到現在仍覺費解。現在將這幾天所碰到的各種怪現象,及目前己能正常運作的種種,做一彙整記要,希望對被問題包圍,無法突破的同學們能提供一點的幫忙。

曾發生過的怪症狀

這幾天曾碰過的各種疑難雜症大致條列如下:

  • 完成程式撰寫,使用 “Deploy” 功能,欲將已完成的程式放上 Google 雲端時,總是碰到 Eclipse 會發出錯誤訊息,大意說 “JSP 檔案無法通過編譯 (compile) ” 
  • 有時可以順利地將程式 Deploy 到 Google 雲端,但是在表單按下 [送交] 鈕 (Submit) 時,卻又遇到了 “500 Server Error” 的錯誤,在瀏覽器中看到如下之錯誤訊:
    "Error: Server Error
    The server encountered an error and could not complete your request.
    If the problem persists, please report your problem and mention the error message and the query that caused it."
  • 有時則是,在Eclipse看到 Deploy 到 Google 雲端的成功訊息,理論上己完成的JSP網頁、HTML網頁與Servlet均己可以正常運作了,但結果卻是,在瀏覽器只能觀看 HTML 網頁;JSP 網頁則是完全無法顯示
  • 使用 Google App Engine SDK 內附的 Web Server 瀏覽網站的首頁,卻看到如下之錯誤訊息:
    HTTP ERROR: 503
    Problem accessing /. Reason:
    SERVICE_UNAVAILABLE

    --------------------------------------------------------------------------------
    Powered by Jetty://
  • 無法對 Package, Class 做 Rename ,否則會得到因 SVN 而發出的錯誤訊息

使用Google App Engine SDK 注意事項

上述的各種問題,現在有些我仍搞不清楚究竟是如何發生的。只是,在解決問題的過程中,個人發覺有許多問題均是導因於 Eclipse 的組態 (Configuration) 出了差錯,現在將這些曾遇過的問題整理如下:

我的Eclipse組態環境

我使用 Eclipse JEE 3.6 x64 版本,至以下之網址下載 Google Plugin for Eclipse http://dl.google.com/eclipse/plugin/3.6為了要能在 Eclipse 中使用SVN Client功能,我亦自 http://subclipse.tigris.org/update_1.6.x 網址處,安裝了 Subclipse Plugin。

最近Google釋出了新版本

在週四上午出門前,發覺Google 釋出了以下的新本:

  • Google App Engine SDK 1.3.5 (前一版本為:1.3.4)
  • Google Web Toolkit (GWT) 2.0.4 (前一版本為:2.0.3)

對於這個新版本,我選擇了立即更新。這個決定,似乎正就是我災難的開始。這話的意思,並不是說這個新版有什麼重大的臭蟲,而是更新之後,整個 Eclipse 的配置環境就亂成了一片。

以下,將告訴大家如何檢查 Eclipse 的配置環境,以免被亂掉的配置環境給搞個半死。

檢查環境變數的設定

image

確定 JAVA_HOME 環境變數之設定。對於先前使用 Eclipse 3.5 x86 (32位元) 版本,後來改用 Eclipse 3.6 x64 (64位元) 版本的人,尤其需要特別注意,務必要讓此處的設定為 “C:\Program Files\Java\jdk1.6.0_20” ,設定使用之 JDK 亦為 64 位元版本,而不是使用 32 位元之版本。

檢查Eclipse的預設配置環境

image

確認JRE的路徑設定

確認 JRE 路徑設定,落在 JDK 所在資料夾位置;而不是一般的 Java Run Time 位置。

image

確認以下 Google App Engine 的路徑設定。

image

確認以下 Google Web Toolkit (GWT) 的路徑設定。

image

確認 Project Properties 中的設定

image

確認 Java Build Path 設定

image

確認 Google App Engine SDK 設定

image

確認 Goolgle Web Tookkit (GWT) 沒做設定

image

確認 war 資料夾中的 lib 設定

image

在 Google Web Application Project 中,於 war/WEB_INF 路徑下的 lib 資料夾,會有10個檔案。其中的前 3 個檔案與 Google App Engine 有著極大的關係,我曾發生莫名其妙的怪事,在 Project Properties 所見之 Google App Engine SDK 的版本為 1.3.5 ,但是此處的前 3 個檔案之版本竟然都為 1.3.4 。

這樣的問題,導致 Google App Engine SDK 內附的 Web Server 無法正常執行。

總結

經過了 3 天 3 夜的奮戰,我發覺無法將 Eclipse 己完成開發的軟 Deploy 到雲端,其問題竟然大都發生在 Eclipse 配置環境的問題。所以,如果大家仍有與我類似的問題,請先依據這裡的描述,完成相關的檢查與修正。以便讓己完成開發的軟體能上得了 Google 雲端,能有初步的執行功能。

至於程式碼中那些錯誤,將致物件無法透過 JDO 寫入 Google 雲端的 Data Store ,請容下回再行補上。

1 則留言:

匿名 提到...

Thanks for your help!!!! You help me so much!!!

張貼留言