Microsoft提供了Windows Azure SDK for Java,同時也提供了Windows Azure Plug-In for Eclipse IDE,讓Java開發者能快速地將使用
J2EE Container如Tomcat之類的Web應用程式搬上Windows Azure,本文便使用這個Plug-In與各位分享如何一步步的將Tomcat的專案搬上Windows Azure執行。
Java/Tomcat on Windows Azure
文/黃忠成
從上次寫Windows Azure文章至今,已經過了近半年之久,最近因工作需要,我開始重拾已經許久未碰的Java(J2SE/J2EE),在製作教材的期間,心中浮起了
是否能將Tomcat/Java搬上Windows Azure的想法,趁著製作教材的空檔開始探查這種可能性。
結果是正面的,Microsoft不但早就提供了Windows Azure SDK for Java,同時也提供了Windows Azure Plug-In for Eclipse IDE,讓Java開發者能快速地將
使用J2EE Container如Tomcat之類的Web應用程式搬上Windows Azure,本文便使用這個Plug-In與各位分享如何一步步的將Tomcat的專案搬上Windows Azure執行。
準備動作
開始之前,必須先準備好相關的工具,當然,Eclipse IDE for Java EE Developer是必需的,可由以下網址下載:
http://www.eclipse.org/downloads/
接著將Windows Azure Plug-In安裝至Eclipse中,此動作通常由Eclipse IDE中的Help|Install New Software…選項執行。
安裝的Software site網址為:
http://dl.windowsazure.com/eclipse
圖1
安裝完成後,Eclipse部分就準備就緒,如果電腦尚未安裝Windows Azure SDK的話,請至以下網址下載安裝。
http://www.microsoft.com/web/gallery/install.aspx?appid=WindowsAzureSDK
這樣所有準備動作就算完成,接下來便可進行應用程式的開發。
First Azure Application with Java
首先自然是透過Eclipse 來建立一個Web Project,我們將其命名為FirstAzure。
圖2
圖3
在Runtime部分選擇Tomcat 7,如果電腦尚未安裝的話,可至以下網址下載:
http://tomcat.apache.org/download-70.cgi
請注意,Windows Azure是64-bit的環境,因此不管是JDK還是Tomcat,都建議下載64-bit的版本。
專案建置完成後,在WebContent目錄下新增一個index.jsp檔案。
圖4
完成後點選Run來測試一下,正確無誤的話應該可看到以下畫面。
圖5
接著建立Windows Azure Project。
圖6
圖7
完成後點選FirstAzure專案,選擇Export WAR File..
圖8
將輸出目錄設定Windows Azure Project專案所在目錄中的WorkerRole1\approot,這個動作的目的是將WAR檔案輸出到Windows Azure Project,
稍後進行Windows Azure Package封裝時才能一併封入。
圖9
另外,當建立Windows Azure Project時,Wizard會產生一個HelloWorld.war檔案,這是為了測試用的,請刪除他。
圖10
接下來的動作比較複雜一些,因為Tomcat on Windows Azure是以Worker Role方式存在,因此執行Tomcat所需的檔案都必須要隨著應用程式一起封裝,第一個要準備的便是JDK,
只是JDK並沒有提供可轉分發類型的Package(僅有msi與exe的安裝檔),其安裝時需要使用者互動,這不適合用在Worker Role,所以我們先在本機電腦上先安裝JDK,然後將把
JDK安裝後的目錄壓縮成ZIP檔,如圖011所示。
圖11
第二個要準備的檔案是Tomcat 7,請由以下網址下載:
http://tomcat.apache.org/download-70.cgi
其ZIP內容如下。
圖12
接著將JDK,Tomcat的ZIP檔案複製到Windows Azure Project專案下的WorkerRole1\approot目錄下。(Windows Azure是64-bit環境,建議JDK/Tomcat都使用64-bit)
圖13
完成後點選Windows Azure Project,後選擇Project|Build All來進行封裝。
圖14
結束後你會見到以下的畫面。
圖15
Samples目錄中提供了各種J2EE Container的設定樣板檔案,請打開Tomcat7這個,然後將其內容複製到WorkerRole1\approot\startup.cmd檔案中。
圖16
接著修改其內容如圖17所示。
圖17
如果仔細看內容,會發現startup.cmd只是個批次檔,要修改的是圖中三個紅框所示之地方,第一段是tomcat解壓後的目錄名稱(如果都是由官網下載的話,通常只須改後面的版本號),
第二段是WAR的檔案名稱,這就是我們要佈署到Azure的Web Project封裝。第三段是tomcat的ZIP檔案名稱,這與第一段通常必須成對修改,本文使用的是Tomcat 7.0.27 X64版本。
完成後,以滑鼠點選emulatorTools\RunInEmulator.cmd檔案。
圖18
如果一切正確的話,FirstAzure這個Web Project將會執行在Windows Azure的模擬環境中。
圖19
在模擬器執行Tomcat與Web應用程式所需的步驟:
- 安裝Eclipse IDE for Java EE Developer
- 安裝Windows Azure SDK for Java Developer Plug-In
- 安裝Windows Azure SDK
- 安裝JDK至本機電腦
- 建立JDK目錄於C:\
- 將JDK的安裝目錄(例如C:\Programs\JDK1.7)內容複製到C:\JDK目錄
- 將整個JDK目錄壓成JDK.ZIP(JDK.ZIP結構必須是JDK\xxx)
- 安裝Tomcat 7
- 建立Dynamic Web Project
- 新增JSP
- 建立Windows Azure Project
- Export Dynamic Web Project的WAR到Windows Azure Project的WorkerRole1\approot目錄
- 將JDK.ZIP及Tomcat的ZIP檔案複製到Windows Azure Project的WorkerRole1\approot目錄下
- 對Windows Azure Project進行Build All
- 修改WorkerRole1\approot\startup.cmd
- 對Windows Azure Project進行Build All
- 執行emulatorTools\RunInEumulator.bat
- 完成
Debuging Web Application with Eclipse
Microsoft所提供的Plug-In同時也能讓開發者透過Eclipse來除錯Web Application(Tomcat),步驟很簡單,選取WorkerRole1這個項目,按右鍵開啟Properties視窗。
圖20
勾選Enable Remote debuging in this role選項。
圖21
再點選Create Debug Configurations..按鈕,加入要除錯的專案(FirstAzure)。
圖22
完成後點選Build All來封裝Azure專案,接著再點選RunInEmulator.com來執行之後,待模擬器執行起來後,你便可以設定所要的中斷點,然後點選Debug Configurations…
圖23
圖24
按下Debug按鈕後開始進入除錯模式後,請開啟瀏覽器鍵入http://127.0.0.1:81/firstazure/index.jsp來瀏覽,此時Eclipse便會跳出並進入除錯狀態。
圖25
佈署至Windows Azure環境
開啟Windows Azure Project的Properties視窗,選擇Deployment to cloud模式,這個模式在Build All動作時會將整個專案封裝成可直接上傳至Windows Azure的檔案。
圖26
接著點選Remote Access頁籤,再點選New按鈕來產生上傳需要用到的憑證檔案。
圖27
圖28
完成後點選Build All來封裝,接著開啟Windows Azure的管理網站進行上傳動作,如圖28。
圖29
注意,在此畫面中你還需要上傳剛剛產生的憑證檔案。
圖30
上傳完成並啟動後,你便可以見到Tomcat與你的Web Application執行在Windows Azure之上。
圖31
續….
基本上還蠻有趣的是吧?,當然,搬上Windows Azure只是第一步,後續的文章我將與各位分享如何在Java中使用SQL Azure、Table Storage/Blog/Queue等功能,