normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

バージョンアップ した Windows Azure Plugin for Eclipse with Java を使ってみる

今回は、Windows Azure での Java 開発について簡単に紹介したい。

はじめに

Windows Azure 上で Java の Web アプリケーションを動作させる場合、大枠で以下の分類があることをご存じだろうか(現時点で Web サイトは Java アプリケーションの動作には向かない)。

  • クラウドサービス:war/ear を送り込むだけ&環境構築が楽
  • 仮想マシン:自前で APサーバを設定する必要がある(もともとテンプレートがある WebLogic Server を除く)けど、設定含めてやりたい放題。WebSphere とかもこっちじゃないとインストールできない

上記の二環境について、Windows Azure Plugin for Eclipse with Java がデプロイ機能を支援しているのはクラウドサービス側であり、仮想マシン側は自前で好き勝手設定できるので自前でデプロイ方法を設定(Maven 等でもOK)する使い分けとなる。
Windows Azure Plugin for Eclipse with Java のインストール方法は Installing the Windows Azure Plugin for Eclipse with Java (by Microsoft Open Technologies) に詳細な記載が存在するため、まずはこちらを参照して Eclipse Plugin をインストールしてほしい。

Windows Azure Plugin for Eclipse with Java を使ってデプロイ

まずは新規プロジェクトの作成から Windows Azure Deployment Project を選択する。選択後、以下の画面が表示される。JDK に Microsoft Open Technologies が作成した OpenJDK ベースの JVM を選択可能になっている(もちろん自分でカスタマイズすることも可能だ)。
f:id:waritohutsu:20131215160515p:plain

Server ではどの APサーバ上で稼働させるかを選択可能になっている。更に、「Deploy my local server(auto-upload to cloud storage)」では、初回のみクラウドストレージにアップロード&デプロイし、二回目以降はクラウドストレージからデプロイするオプションが設定可能だ。
f:id:waritohutsu:20131215160522p:plain

Applications は通常と変わらずに war や ear を選択・追加することが可能になっている。
f:id:waritohutsu:20131215160533p:plain

Windows Azure のクラウドサービスにデプロイするためにはアカウント情報を取得する必要があり、Eclipse プロジェクトを右クリックして Properties を選択し、左メニューから Windows Azure > Subscriptions を選択し、GUI のメニューに従ってアカウント情報をインポートする。この際、以下の画面が出たらおとなしく .NET Framework 3.5 をインストールすること(白目
f:id:waritohutsu:20131215160542p:plain

アカウント情報の設定後、Eclipse プロジェクトを右クリックして Windows Azure > Deploy to Windows Azure Cloud を選択し、以下の画面からデプロイ情報を入力してデプロイを開始する。
f:id:waritohutsu:20131215161118p:plain

以下は二回目以降の Eclipse プロジェクトのデプロイログだ。APサーバが再度アップロードされず、クラウドストレージから取得されていることが確認できる。

Buildfile: C:\XXXXXXXXXXXXXXXX\HelloAzure\package.xml

checkResetScript:

resetEmulator:

createwapackage:
       [mkdir] Created dir: C:\XXXXXXXXXXXXXXXX\HelloAzure\deploy
      [delete] Deleting directory C:\XXXXXXXXXXXXXXXX\HelloAzure\deploy.old
[windowsazurepackage] Verified attributes.
[windowsazurepackage] Role "WorkerRole1": Verifying the approot "C:\XXXXXXXXXXXXXXXX\HelloAzure\WorkerRole1\approot"
[windowsazurepackage] Role "WorkerRole1": Importing components...
[windowsazurepackage]  Not importing component 'jdk1.7.0_40' because it will be downloaded during deployment in the cloud
[windowsazurepackage]  Not importing component 'apache-tomcat-7.0.47' because it will be downloaded during deployment in the cloud
[windowsazurepackage] Role "WorkerRole1": Finished importing components
[windowsazurepackage] Role "WorkerRole1": Generating component deployment script...
[windowsazurepackage] Role "WorkerRole1": Created internal startup script
[windowsazurepackage] Starting package generation...
[windowsazurepackage] Executing '[C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.2\bin\cspack.exe, C:\XXXXXXXXXXXXXXXX\HelloAzure\ServiceDefinition.csdef, /role:WorkerRole1;C:\XXXXXXXXXXXXXXXX\HelloAzure\WorkerRole1\approot, /rolePropertiesFile:WorkerRole1;C:\XXXXXXXXXXXXXXXX\HelloAzure\.rolePropertiesOS3, /out:C:\XXXXXXXXXXXXXXXX\HelloAzure\deploy\WindowsAzurePackage.cspkg]'...
[windowsazurepackage] Process started
[windowsazurepackage] Windows(R) Azure(TM) Packaging Tool version 2.2.0.0
[windowsazurepackage] for Microsoft(R) .NET Framework 4.0
[windowsazurepackage] Copyright c Microsoft Corporation. All rights reserved.
[windowsazurepackage] C:\XXXXXXXXXXXXXXXX\HelloAzure\ServiceDefinition.csdef: Warning  CloudServices040 : The 'schemaVersion' attribute is unspecified. Please set the attribute to avoid this warning.
[windowsazurepackage] Waiting for process to exit...
[windowsazurepackage] Completed package generation.
[windowsazurepackage] Copying 1 file to C:\XXXXXXXXXXXXXXXX\HelloAzure\deploy
[windowsazurepackage] Verifying blob availability (http://portalvhdsmtkkx7225509q.blob.core.windows.net/eclipsedeploy/zulu1.7.0_40-7.1.0.0-win64.zip)...

デプロイが無事完了すると以下の画面が表示される。
f:id:waritohutsu:20131215160558p:plain

閑話休題(JDKの種類について)

ところで、皆様は JDK がどの位の種類存在しているかご存じだろうか?Oracle に買収された Sun が開発していた Sun JDK を主体として、主な JDK ですら以下が存在する。

色々と JDK が増えて厳しい世の中だが、元 Sun JDKOracle JDK と Open JDK ベースの JDK に種類が収束しそうな気配だ。