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 ,請容下回再行補上。

2010-07-04

Hope Has a Place


兩天的週末假期,很快地又過了。今天沒做多少事,但是轉眼間,夜又將深了。看著剛入睡的小祖宗,心中很是抱歉,這個禮拜又跟上個禮拜、上上個禮拜、上上上個禮拜.....,全都是一個樣,沒有帶他出去走走。

在週末帶小祖宗出去走走,已是連續六週來,每個週日夜都要發出的心願。想到這裡,不禁要搖頭苦笑,希望啊!希望 ~~~ Hope Has a Place!!

簡介SCRUM軟體開發流程

對於軟體開發人員而言,如何將對軟體期待的需求,轉化為設計規格,並能依規格完成程式設計,交付令客戶滿意的產品,以便開心的客戶,甘心付錢讓自己口袋麥克、麥克,這是極為重要的大事。

為了達到這個軟體開發的終極目標,有許許多多的人提出各種、各式的軟體開發流程 (Software Development Process) 。軟體開發流程之多,多到令人眼花。
我沒有什麼本事,所以不想、也無法評論各種軟體開發流程的好、壞。但是如果您的軟體開發專案有下列之特性,也許該考慮SCRUM軟體開流程:
  • 專案的成員大致為:3 - 5人
  • 專案開發的時期不是很長 (約 3 - 6 個月)
  • 應用系統的開發,採反覆(Iterative)與漸增(Incremental)的方式,分期交付客戶
  • 使用UML做為OOAD的分析與設計技術
  • 程式設計開發使用OOP的電腦程式語言
如果以上的這些說明,讓您覺得 "很虛" ,很想對我說「你公蝦?」,那麼我們且來觀賞以下的SCRM摘要介紹影片。


觀看上面這段影片對SCRUM的介紹,若在配合以下的這張圖,可以使您快速地對SCRUM有個概觀的了解。


800px-Scrum_process.svg[1]
以上圖片出處,其網址為:http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Scrum_process.svg/800px-Scrum_process.svg.png


但是......,如果僅是這樣,無法滿足您打破沙碢問到底的求知慾,個人推薦可再閱讀以下的這本書。

Head First Software Development
書名:
深入淺出軟體開發
作者:Dan Pilone, Russell Miles
編譯:楊仁和
書號:A232
ISBN:978-986-6840-21-0
頁數:500頁
出版日期:2008年06月
售價:680

雖然上述的這本書,從頭到尾都看不到SCRUM的字眼,出現在該書中。但是,您可從本書學到SCRUM軟體開發流程的精神,例如:如何以測試驅動開發(TDD)的方式開發軟體應用系統;如何讓軟體的建置(Build)工作自動化;為程式做版本控制(Version Control);為軟體進行重構(Refactor) .....。

SCRUM軟體開發流程,談的是 "流程的架構" 。至於如何讓SCRUM軟體開發流程,能夠真正地運轉起來,則需有 "工具" 來支撐,這樣SCRUM的威力才能真正發揮。如果,您軟體開發所使用的程式語言正好為Java;您不希望因大而無當的 "文件" ,壞了專案的生產力;但也不想,因毫無文件可供參考,致使後續的維護變成 "災難" 。那麼,這應該是值得您好好研讀的一本好書。

eclipse – Java IDE 開發工具筆記彙整

常言道:「工欲善其事,必先利其器」。許多使用Java程式語言的朋友,係以eclipse做為Java IDE工具。對於使用eclipse做為Java應用系統開發工具的人,免不了需要下載eclipse、或是專為它設計的各種plug-in工具。以下彙集整理的重點,希望在您需要下載的時候,能有上那麼一點幫助。

關於eclipse的近況

eclipse在2010年6月23日,發行了3.6 (Helios) 版本。對於這個版本,我最感高興的事為:在Windows平台執行的版本,終於有了64位元的版本。關於eclipse下載的網址 (URL) 條列如下:
image
首次進到eclipse下載網站的朋友,大概都會對著那一拖拉古可供下載的項目看儍眼,不知該從何處著手。對於您該下載那個版本的指引,說明如下:
  • Eclipse IDE for Java EE Developers:對於需要開發Java應用程式,同時亦需開發Serverlet與JSP網頁的朋友,請下載這個企業級版本。
  • Eclipse IDE for Java Developers對於只需要開發傳統Java應用程式的朋友,則請下載這個標準版本。
由於eclipse基本上就有Java EE Developers與Java Developers兩種版本。而每種版本,在Windows平台亦各有32位元與64位元兩種版本。對於已經完成檔案下載的朋友,有時可能會分不清自己所擁有的究竟是那一個版本,下列之表格,以eclipse 3.6 (Helios) 為例,教您如何自檔案名稱,辨識所下載的eclipse究竟是那一個版本。
Windows 32 位元
Windows 64 位元
Eclipse IDE for Java EE Developereclipse-jee-helios-win32.zipeclipse-jee-helios-win32-x86_64.zip
Eclipse IDE for Java Developerseclipse-java-helios-win32.zipeclipse-java-helios-win32-x86_64.zip

綜合上述各種版本之檔案名稱,可歸納eclipse各個版本的規則如下:
eclipse-<<識別一>>-<<識別二>>-<<識別三>>.zip
  • 識別一:若為jee表Java EE企業級版本;java表標準版。
  • 識別二:helios表3.6版;galileo表3.5版。
  • 識別三:若為win32表可在Windows平台執行的32位元版,如:Windows XP、Windows Server 2003;win32-x86_64表可在Windows平台執行的64位元版,如:Windows 7 (x64) Windows Server 2008 R2。

關於eclipse的plug-in


使用eclipse的朋友,可能需要讓eclipse能夠化為SVN Client,在eclipse的IDE環境中,就能直接執行Java程式碼的簽入 (Check-in) /簽出 (Check-out) ;或是希望在eclipse開發Google雲端應用系統。對於這些常用的eclipse plug-in,其下載網址,整理條列如下:
  • Sublipse plug-in for eclipse –- 可令eclipse化身為SVN Client。撰寫本文時最新版本為1.6.x,經過個人的測試,這個版本的plug-in可在eclipse 3.4, 3.5, 3.6 (32位元)版本執行。雖然這個版本亦可在3.6 (64位元) 版本執行,但很容易看到JavaHL的錯誤警示。
  • Google App Engine plug-in for eclipse -- 使eclipse可開發Google雲端應用系統。不論您是使用eclipse 3.4, 3.5, 3.6的那一個版本,皆可在這找到適合您使用的plug-in版本。
走筆至此,報告完畢,希望各位在eclipse使用愉快,開發出偉大的軟體 -- 是幸。 ^^