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 Con​​tainer如Tomcat之类的Web应用程式搬上Windows Azure,本文便使用这个Plug-In与各位分享如何一步步的将Tomcat的专案搬上Windows Azure执行。

[b]准备动作[/b]

开始之前,必须先准备好相关的工具,当然,Eclipse IDE for Java EE Developer是必需的,可由以下网址下载:

[url]http://www.eclipse.org/downloads/[/url]

接着将Windows Azure Plug-In安装至Eclipse中,此动作通常由Eclipse IDE中的Help|Install New Software…选项执行。

安装的Software site网址为:

[url]http://dl.windowsazure.com/eclipse[/url]

图1

[align=center][img]http://dl.iteye.com/upload/attachment/0078/0836/f03fd945-93ff-368b-9b3e-8e19a9fb63f2.jpg[/img][/align]

安装完成后,Eclipse部分就准备就绪,如果电脑尚未安装Windows Azure SDK的话,请至以下网址下载安装。

[url]http://www.microsoft.com/web/gallery/install.aspx?appid=WindowsAzureSDK[/url]

这样所有准备动作就算完成,接下来便可进行应用程式的开发。

[b]First Azure Application with Java[/b]

首先自然是透过Eclipse 来建立一个Web Project,我们将其命名为FirstAzure。

图2

[align=center][img]http://dl.iteye.com/upload/attachment/0078/0844/0ab79ff7-f951-3998-a65c-cfca5a27ab0e.jpg[/img][/align]

图3

[align=center][img]http://dl.iteye.com/upload/attachment/0078/0838/7325ba3d-8303-3289-b0b2-cbc4a3964462.jpg[/img][/align]

在Runtime部分选择Tomcat 7,如果电脑尚未安装的话,可至以下网址下载:

[url]http://tomcat.apache.org/download-70.cgi[/url]

请注意,Windows Azure是64-bit的环境,因此不管是JDK还是Tomcat,都建议下载64-bit的版本。

专案建置完成后,在WebContent目录下新增一个index.jsp档案。

图4

[img]http://dl.iteye.com/upload/attachment/0078/0840/a1e84bd2-7ea7-3e51-8345-ad56fa4e8cec.jpg[/img]

完成后点选Run来测试一下,正确无误的话应该可看到以下画面。

图5

[img]http://dl.iteye.com/upload/attachment/0078/0842/02ebe183-87ee-34fa-91d2-1ae9b25a579d.jpg[/img]

接着建立Windows Azure Project。

图6

[img]http://dl.iteye.com/upload/attachment/0078/0846/f7a19925-48b1-3841-a444-ce9b9d2dfc5a.jpg[/img]

图7

[img]http://dl.iteye.com/upload/attachment/0078/0848/65846a1c-aedb-3c0c-9c21-7d4b2a3afed6.jpg[/img]

完成后点选FirstAzure专案,选择Export WAR File..

图8

[img]http://dl.iteye.com/upload/attachment/0078/0851/3190b846-bde4-3977-956c-9863757b4c0a.jpg[/img]

将输出目录设定Windows Azure Project专案所在目录中的WorkerRole1\approot,这个动作的目的是将WAR档案输出到Windows Azure Project,

稍后进行Windows Azure Package封装时才能一并封入。

图9

[img]http://dl.iteye.com/upload/attachment/0078/0850/b9f17537-ce46-3642-92bf-98c76031b024.jpg[/img]

另外,当建立Windows Azure Project时,Wizard会产生一个HelloWorld.war档案,这是为了测试用的,请删除他。

图10

[img]http://dl.iteye.com/upload/attachment/0078/0854/a94a160d-aa1d-35dc-98ba-eba56f1bc327.jpg[/img]

接下来的动作比较复杂一些,因为Tomcat on Windows Azure是以Worker Role方式存在,因此执行Tomcat所需的档案都必须要随着应用程式一起封装,第一个要准备的便是JDK,

只是JDK并没有提供可转分发类型的Package(仅有msi与exe的安装档),其安装时需要使用者互动,这不适合用在Worker Role,所以我们先在本机电脑上先安装JDK,然后将把

JDK安装后的目录压缩成ZIP档,如图011所示。
图11

[img]http://dl.iteye.com/upload/attachment/0078/0855/afbe4cfa-d984-33d8-9d04-8f23be8f322e.jpg[/img]

第二个要准备的档案是Tomcat 7,请由以下网址下载:

[url]http://tomcat.apache.org/download-70.cgi[/url]

其ZIP内容如下。

图12

[img]http://dl.iteye.com/upload/attachment/0078/0858/aba89a7d-bf12-31ad-9494-02554c493397.jpg[/img]

接着将JDK,Tomcat的ZIP档案复制到Windows Azure Project专案下的WorkerRole1\approot目录下。(Windows Azure是64-bit环境,建议JDK/Tomcat都使用64-bit)

图13

[img]http://dl.iteye.com/upload/attachment/0078/0860/3b599671-7e68-307b-b005-8536d2208cd5.jpg[/img]

完成后点选Windows Azure Project,后选择Project|Build All来进行封装。

图14

[img]http://dl.iteye.com/upload/attachment/0078/0862/bdf4369f-288a-3888-bb3b-c6bedbd61034.jpg[/img]

结束后你会见到以下的画面。

图15

[img]http://dl.iteye.com/upload/attachment/0078/0864/3ffcc4c7-ae48-3ec8-87cf-e8985f0e5111.jpg[/img]

Samples目录中提供了各种J2EE Con​​tainer的设定样板档案,请打开Tomcat7这个,然后将其内容复制到WorkerRole1\approot\startup.cmd档案中。

图16

[img]http://dl.iteye.com/upload/attachment/0078/0866/42e4e629-de10-338d-b192-c8e087470441.jpg[/img]

接着修改其内容如图17所示。

图17

[img]http://dl.iteye.com/upload/attachment/0078/0868/d1fbda73-cd0d-38ee-b2f3-0681c982c53b.jpg[/img]

如果仔细看内容,会发现startup.cmd只是个批次档,要修改的是图中三个红框所示之地方,第一段是tomcat解压后的目录名称(如果都是由官网下载的话,通常只须改后面的版本号),

第二段是WAR的档案名称,这就是我们要布署到Azure的Web Project封装。第三段是tomcat的ZIP档案名称,这与第一段通常必须成对修改,本文使用的是Tomcat 7.0.27 X64版本。

完成后,以滑鼠点选emulatorTools\RunInEmulator.cmd档案。

图18

[img]http://dl.iteye.com/upload/attachment/0078/0870/3f0eced6-8703-333b-8db4-824da61886d6.jpg[/img]

如果一切正确的话,FirstAzure这个Web Project将会执行在Windows Azure的模拟环境中。

图19

[img]http://dl.iteye.com/upload/attachment/0078/0872/1c0d9efa-768a-3a32-b82a-4164872824ea.jpg[/img]

在模拟器执行Tomcat与Web应用程式所需的步骤:

[list]
[*]安装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
[*]完成
[/list]

[b]Debuging Web Application with Eclipse[/b]

Microsoft所提供的Plug-In同时也能让开发者透过Eclipse来除错Web Application(Tomcat),步骤很简单,选取WorkerRole1这个项目,按右键开启Properties视窗。

图20

[img]http://dl.iteye.com/upload/attachment/0078/0874/13ea0b55-51e1-35cd-ab57-dc47addc0607.jpg[/img]

勾选Enable Remote debuging in this role选项。

图21

[img]http://dl.iteye.com/upload/attachment/0078/0878/2cd0a0cd-9c1b-37b2-a685-85426ac806e0.jpg[/img]

再点选Create Debug Configurations..按钮,加入要除错的专案(FirstAzure)。

图22

[img]http://dl.iteye.com/upload/attachment/0078/0880/21deda55-5f2d-3bb0-9ff0-e3625662f0a5.jpg[/img]

完成后点选Build All来封装Azure专案,接着再点选RunInEmulator.com来执行之后,待模拟器执行起来后,你便可以设定所要的中断点,然后点选Debug Configurations…

图23

[img]http://dl.iteye.com/upload/attachment/0078/0882/9f71b29a-c94a-31c9-bbba-b79a53b88bec.jpg[/img]

图24

[img]http://dl.iteye.com/upload/attachment/0078/0884/c2d86cb5-6d5c-33d4-96c7-34f8ab547592.jpg[/img]

按下Debug按钮后开始进入除错模式后,请开启浏览器键入http://127.0.0.1:81/firstazure/index.jsp来浏览,此时Eclipse便会跳出并进入除错状态。

图25

[img]http://dl.iteye.com/upload/attachment/0078/0886/40ae7278-9239-3a9c-aaaa-eb89b1260f9d.jpg[/img]

[b]布署至Windows Azure 环境[/b]

开启Windows Azure Project的Properties视窗,选择Deployment to cloud模式,这个模式在Build All动作时会将整个专案封装成可直接上传至Windows Azure的档案。

图26

[img]http://dl.iteye.com/upload/attachment/0078/0888/e2d14ede-5705-3137-a067-9be21e3e762b.jpg[/img]

接着点选Remote Access页签,再点选New按钮来产生上传需要用到的凭证档案。

图27

[img]http://dl.iteye.com/upload/attachment/0078/0890/00786ab2-23df-3667-8cc2-ac444f8ab888.jpg[/img]

图28

[img]http://dl.iteye.com/upload/attachment/0078/0892/6b9a667b-052f-38f8-9ce5-d025198c384d.jpg[/img]

完成后点选Build All来封装,接着开启Windows Azure的管理网站进行上传动作,如图28。

图29

[img]http://dl.iteye.com/upload/attachment/0078/0894/abd56af2-3acf-3c58-9e45-f63b8611dad5.jpg[/img]

注意,在此画面中你还需要上传刚刚产生的凭证档案。

图30

[img]http://dl.iteye.com/upload/attachment/0078/0896/4f6dbb82-a873-3c89-b417-aad00bc15f17.jpg[/img]

上传完成并启动后,你便可以见到Tomcat与你的Web Application执行在Windows Azure之上。

图31

[img]http://dl.iteye.com/upload/attachment/0078/0898/a72f67ad-c344-31bd-bc84-a52e2f23cce8.jpg[/img]

[b]续….[/b]

基本上还蛮有趣的是吧?,当然,搬上Windows Azure只是第一步,后续的文章我将与各位分享如何在Java中使用SQL Azure、Table Storage/Blog/Queue等功能,

文章链接:[url]http://www.dotblogs.com.tw/code6421/archive/2012/04/23/71718.aspx[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值