Google App Engine for Java

Google App Engine(GAE)とは

GAEとはGoogleが提供するPaaS(Platform as a Service)です。JavaとPythonを動かすことができます。本サイトでは、Javaについてのみ扱います。

GAEの制約

GAEは、単なるJavaEEのコンテナではありません。どちらかというと通常のJ2EEコンテナより多くの制約があります。その制約ゆえ全てのJavaのクラスが使えるわけではありません。どのクラスが使える(使えない)のかは

をチェックして確認しましょう。

また、無料枠だと使える制限もあります。有料モードに変えることで使える範囲も増えます(金額も青天井に上がっていきます)が、

という落とし穴もありますので注意してください。

Datastoreについて

GAEでは、GoogleのもつKey-Value Storeのデータベース(Datastore)を利用することができます。これはRDBとは異なりますので一癖ありますが、ある意味シンプルな設計でよいのでコツさえ使えば協力な武器になるでしょう。

ローカル用データストアの管理

NetbeansやEclipse上で動かした際は、データベースはローカルにあります。ローカル用の管理コンソールがあり、

http://localhost:8080/_ah/admin (Netbeansの場合)

(http://localhost:8888/_ah/admin (Eclipseの場合)

でアクセスできます。簡易的にデータベースの中身も見れます。

データベースの内容は再起動しても消えません。ゼロからやり直したい場合は、データファイルを削除することになります。その場所は

<プロジェクトのディレクトリ>/build/web/WEB-INF/appengine-generated/local_db.bin

です。

Datastore関連リンク

GAEにデプロイする

プ ロジェクトの上で右クリックすると[Deploy to Google App Engine]というメニューがあります。これを使えばいいわけですが、さてどこにデプロイされるのか?その設定は、appengine-web.xml に記述します。GAEに登録しているアプリケーション名を書けばOKです。ここを設定しないと、プロジェクト名をアプリケーション名として登録しにいくよ うです(当然その名前のプロジェクトがないとエラーがでるはず)。

で、先述の[Deploy to Google App Engine]を選んで、パスワードなどを入力すればうごくはず、、、ですが、この段階で、

java.lang.IllegalStateException: cannot find javac executable based on java.home,,,,,,

というエラーが出てしまった場合、、、これは、Google App Engine SDKがjavacを認識できていないということなので、Google App Engine SDK for java のインストールディレクトリにある、bin/appcfg.cmdを編集し、

変更前:@java -cp .....
変更後:@"%JAVA_HOME%\bin\java" -cp ...

に書き換えればオッケイです。

関連ライブラリ

参考サイト