unoh.github.com

Google App Engine Java 触ってみたメモ

Tue Apr 14 22:24:13 -0700 2009

yukiです。
最近社内のコードレビューにて「Javaとっかかり」というものがあり、とても興味があったので参加させて頂いたのですが(開いてもらったとも言う)、「なんとなくActionScriptに似てるなぁ」という印象を持ちました。Javaの人もActionScriptの人も「全然違う」と思うかもしれませんが。
そんな感じで日曜スクリプト書いてみたり色々勉強中のJavaですが、先日Google App EngineでもJavaが対応した(今は英語版のみ)ということなので、ちょっとイジってみました。PythonでWebアプリのエントリでも書いていますが、何かを作ると言うよりはイジってみたかったので。
まだ何かをアップロードしたわけではありませんが、流れをざっとご紹介しようと思います。

まずHelp→SoftwareUpdateからロケーションを追加し、Google Plugin for Eclipseを導入しました。詳細は2009/04/15現在以下のようになっています。

次に新プロジェクトを作成します。先ほどのプラグインを追加すると新たに項目が増え「Web Application Project」というのが選択できるようになっています。
icon
icon posted by (C)フォト蔵
newproject
newproject posted by (C)フォト蔵

作成されたファイルは以下のような構造になっています。
directories
directories posted by (C)フォト蔵
ここからServletやJSPを利用するコードを開発していきます。
deployもEclipseから出来るようになっており、非常に簡単です。ただこのままですと以下のようなエラーが発生してdeployできません。

Creating staging directory
Scanning for jsp files.
Scanning files on local disk.
Initiating update.
Unable to upload:
java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=XXXXXXXXXX&version=XXXXXXXX&
400 Bad Request
Invalid runtime specified.

	at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:114)
	at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:66)
	at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:345)
	at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:159)
	at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:68)
	at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:41)
	at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:203)
	at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:97)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=XXXXXXXXXX&version=XXXXXXXX&
400 Bad Request
Invalid runtime specified.
これは事前に認証が必要すればdeployできるようになるので、こちらから認証して下さい。しばらくすると(半日~1日程度)認可のメールが送られてきますので、そこからは問題なくdeployすることができます。
deploy
deploy posted by (C)フォト蔵
app_id
app_id posted by (C)フォト蔵
余談ですが、公式ページでは
April 2009: During this "early look" of Google App Engine for Java, the ability to upload Java applications to App Engine is reserved for a limited number of developer accounts. All users will be able to upload Java apps when we do a full release of Google App Engine for Java in the near future.
とあるので、しばらく待てば認証もなくなるのではないかと思います。

色々試行錯誤しながらやった結果、なかなか日本語での情報が少ないので大変ですが、おもしろそうなので何か作ってみるかもしれません。それではまた。