Google App EngineがJavaに対応したので早速試してみた

米グーグルの「Google App Engine」、Javaアプリケーションが利用可能に | 日経 xTECH(クロステック)」と言うことで、Googleチュートリアルhttp://code.google.com/intl/en/appengine/docs/java/gettingstarted/)に沿って早速試してみた。なお、チュートリアルではゲストブックアプリの作成を通じて使い方を学ぶ流れになっている。


ステップ1:JDK 6をインストール
JDK 5でも問題ないようだが、Google App Engineの実行環境がJava 6のなので、JDK 6の利用を推奨している。そこでJDK 6をインストールした。


ステップ2:Eclipseをインストール
EclipseGoogle Plugin for Eclipseを使うと便利とチュートリアルに書いてあるので、まずはEclipseをインストール。Google Plugin for EclipseEclipse 3.3と3.4に対応しているので、Eclipse 3.4をインストールした(Eclipse IDE for Java Developers 3.4.2)。また、Web Tools Platform (WTP) pluginsのインストールも薦めているので、WTP 3.0.4をインストールした。


ステップ3:Google Plugin for Eclipseをインストール
http://code.google.com/intl/en/appengine/docs/java/tools/eclipse.htmlに従いGoogle Plugin for Eclipseをインストール。プラグインがインストール出来ないという問題が起きたりしているようだが、他のプラグインをほとんどインストールしていないクリーンな環境に入れたためか、特に問題なくインストール出来た。


ステップ4: Google App Engine用のプロジェクト作成
Google Plugin for Eclipseをインストールすると、[File] -> [New] に [Web Application Project]というのが追加されるので、それを選択してGoogle App Engine用のプロジェクトを作成を実施(チュートリアルに従い「Use Google Web Toolkit」のチェックを外した)。
ちなみに「Use Google Web Toolkit」のチェックをしてプロジェクトを作成すると、Ajaxサンプルソースコードが含まれたプロジェクトが生成される。


ステップ5: プロジェクトの実行
作成したプロジェクトを選択し、[Run] -> [Debug As] -> [Web Application]をクリックして、Webアプリケーションを起動する。
EclipseのConsoleに"The server is running at http://localhost:8080/"と表示されたら起動成功。ブラウザでhttp://localhost:8080/プロジェクト名にアクセスすると、Hello, worldと表示された。
なお、プロジェクトを実行したままでソースコードを修正して保存すると、Eclipseが自動的にソースコードコンパイルし、動的に実行中のWebサーバーに再配布してくれる(web.xmlを修正した場合には、Webサーバーを停止する必要有)。
プロジェクトを停止するには、EclipseのConsoleでTerminateボタンを押す。


ステップ5: サービスのデプロイ
ここまでに作成したWebアプリケーションをGoogle Web App上にデプロイするには、Eclipseに追加されたデプロイボタンを押すか、[File] -> [Google] -> [Delploy to App Engine]メニューをクリックする。
EmailとPasswordを入力する画面が出てくるが、まずは[App Engine project settings...]をクリックして、Application IDを登録する。その後でEmailとPasswordを入力し[Deploy]を押す。

すると以下のようなエラーが発生。

java.io.IOException: Error posting to URL:http://appengine.google.com/
                       api/appversion/create?app_id=xxxxxx&version=1&
400 Bad Request
Invalid runtime specified.

どうもJava版を利用するためには事前の認証が必要のようで、Google App Engineにログインしてみると、"Interested in trying our new Java language support? Learn more"というメッセージが出ており、Learn moreをクリックすると、サインアップの登録が行われた。
サインアップ後3時間ほどでアクティベーション完了の通知メールが届いたので、再度デプロイを実施すると無事成功した(Pythonで使ったApplication IDをそのまま使って上書きする事も出来た)。


その他:
CodeZineの「Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse (1/5):CodeZine(コードジン)」という記事も非常に参考になった。