前回からの「Windows Azure for Javaを試すよ その1」の続きです。前回はWindows Azure プロジェクトの作成まで行いました。
WARの配置
HelloWorldプロジェクトのコンテキストメニューから、[エクスポート]-[WARファイル]を選択。AzureプロジェクトのWorkerRole1\approotに配置します。既存のWARファイルがありますが上書きします。既存のWARファイルを使って実行できるのかは試していないので不明です。
ちゃんと上書れたか確認したい場合は、WARファイルを選択して、プロパティから確認できます。
JDK/Tomcatの配置
ZIP化したJDKやapace-tomcat-7.0.22をapprootフォルダに配置します。プロのAzurerなら、SDK1.5で追加されたContent属性を使った方が方が楽なんじゃないかと思いつつ用意します。Java、Tomocatともに32/64bit版が用意されていたりしますが、ここは32bitで進めてみます。
JDKを、JDK.zipというファイル名で、ZIP化してapproot直下に格納しますが、ルートフォルダは「JDK」にする必要があります。
Tomcatは、apace-tomcat-7.0.22 をTomcat7.zipとしておけばOK。
上記プロジェクトのSamplesフォルダをよく見ると、各Webサーバ毎のスタートアップスクリプト群が用意されています。今回は、Tomcat用ファイルを開き、内容をStartup.cmdへ上書きします。
今回手元に「apace-tomcat-7.0.21」があったのでそれを使いましたが、そのような場合やWARを変えたい場合はスクリプトを直接修正する必要がありそうです。
:: 4) Update SERVER_DIR_NAME below as appropriate:
:: (IMPORTANT: There must be no trailing nor leading whitespace around the setting)SET SERVER_DIR_NAME=apache-tomcat-7.0.21
:: 5) To deploy your own WAR file, place it in approot and update WAR_NAME below:
:: (IMPORTANT: There must be no trailing nor leading whitespace around the setting)SET WAR_NAME=HelloWorld.war
次に[プロジェクト]-[プロジェクトのビルド]を実行します。コンソールに以下のような感じで表示されるとOKっぽいでしょう(この時点で検証しながら書いているんで正しいか不明ですw)
エミュレーターの起動
いよいよローカルで実行してみます。
Eclispseから通常の実行ができるわけではなく、emulatorToolsフォルダにある、「RunInEmulator.cmd」 をダブルクリックして実行します。エミュレータの起動画面が表示されます。
そしてスタートアップスクリプトの実行の様子が表示されますが、、、、JDKとTomcatのUnzipがめちゃくちゃ遅い。体感で5分以上かかった感じが。
うまく行けば、Tomcatが起動します。
HelloWorldにアクセスすればごらんの通り。
ローカルホストにアクセスするとTomcatが動作していることが分かります。
おまけ
実行時には、ルート直下にリンクが作成、展開されます。そのため、そこを参照するとどうなっているか分かると思います。
面倒なのでAzure環境にはデプローーーーイしておりませんので、あしからず。Tomcatを動作させるくらいなら、ProgramEntryPoint使った方が楽ちんかも。