[Azure]Java/Tomcat on 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執行。

 

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應用程式所需的步驟:

  1. 安裝Eclipse IDE for Java EE Developer
  2. 安裝Windows Azure SDK for Java Developer Plug-In
  3. 安裝Windows Azure SDK
  4. 安裝JDK至本機電腦
  5. 建立JDK目錄於C:\
  6. 將JDK的安裝目錄(例如C:\Programs\JDK1.7)內容複製到C:\JDK目錄
  7. 將整個JDK目錄壓成JDK.ZIP(JDK.ZIP結構必須是JDK\xxx)
  8. 安裝Tomcat 7
  9. 建立Dynamic Web Project
  10. 新增JSP
  11. 建立Windows Azure Project
  12. Export Dynamic Web Project的WAR到Windows Azure Project的WorkerRole1\approot目錄
  13. 將JDK.ZIP及Tomcat的ZIP檔案複製到Windows Azure Project的WorkerRole1\approot目錄下
  14. 對Windows Azure Project進行Build All
  15. 修改WorkerRole1\approot\startup.cmd
  16. 對Windows Azure Project進行Build All
  17. 執行emulatorTools\RunInEumulator.bat
  18. 完成

 

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等功能,