GAE/JでRailsを動かす(4)

前回、結局GAE/Jの登録がまだでデプロイできないという悲しいオチから1週間、意外と早くGAE/Jの利用可能メールがGoogleから来ました!

Thanks for signing up to try Google App Engine for Java! Your account has now
been activated, so you can begin building applications with our new Java
runtime.

ということで、早速前回と同じコマンドでデプロイを試みてみます。

$ appengine-java-sdk-1.2.1/bin/appcfg.sh update laf-gae/tmp/war
Reading application configuration data...
2009-05-27 23:45:26.783::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
Beginning server interaction for iknow-laf...
0% Creating staging directory
5% Scanning for jsp files.
20% Scanning files on local disk.
25% Scanned 250 files.
28% Scanned 500 files.
31% Scanned 750 files.
33% Scanned 1000 files.
34% Initiating update.
Password for fujibee@gmail...:
35% Cloning 25 static files.
36% Cloning 1092 application files.
37% Cloned 100 files.
37% Cloned 200 files.
37% Cloned 300 files.
37% Cloned 400 files.
37% Cloned 500 files.
37% Cloned 600 files.
37% Cloned 700 files.
37% Cloned 800 files.
37% Cloned 900 files.
37% Cloned 1000 files.
40% Uploading 66 files.
52% Rolling back the update.

java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/addfile?path=WEB-INF%2Fapp%2Fcontrollers%2Fapplication_controller.rb&app_id=iknow-laf&version=1&
400 Bad Request
Max number of files and blobs is 1000.

Unable to upload app: Error posting to URL: http://appengine.google.com/api/appversion/addfile?path=WEB-INF%2Fapp%2Fcontrollers%2Fapplication_controller.rb&app_id=iknow-laf&version=1&
400 Bad Request
Max number of files and blobs is 1000.

うーん、やっぱり適当に消したのでファイル数オーバーしているようです・・
でも、52%まで行きました!

$ rm -rf vendor/rails/railties/{doc,html,bin,builtin,environments,dispatches}
$ rm -rf vendor/rails/actionpack/test

最初からこうやってればよかったのにねぇ。。まあ、気を取り直して。

warblarでcleanしてからモノを準備し直します。

$ jruby -S warble war:clean
rm -rf tmp/war
rm -f laf-gae.war
$ jruby -S warble
...
cp public/images/rails.png tmp/war/images/rails.png
mkdir -p tmp/war/WEB-INF
jar cf laf-gae.war  -C tmp/war .

再実行すると。。

$ appengine-java-sdk-1.2.1/bin/appcfg.sh update laf-gae/tmp/war
Reading application configuration data...
2009-05-28 00:13:50.396::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
Beginning server interaction for iknow-laf...
0% Creating staging directory
5% Scanning for jsp files.

java.lang.IllegalStateException: Found a jar file too large to upload: "/tmp/appcfg10512.tmp/WEB-INF/lib/jruby-complete-1.3.0RC1.jar".  Consider using --enable_jar_splitting.
Unable to upload app: Found a jar file too large to upload: "/tmp/appcfg10512.tmp/WEB-INF/lib/jruby-complete-1.3.0RC1.jar".  Consider using --enable_jar_splitting.
Please see the logs [/tmp/appcfg10511.log] for further information.

おっと。。jarのsplitが元に戻ってしまった。。
もう一度前回エントリのshを使ってjar分割。再実行。

$ cd ..
$ appengine-java-sdk-1.2.1/bin/appcfg.sh update laf-gae/tmp/wa
r
Reading application configuration data...
2009-05-28 00:15:50.078::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
Beginning server interaction for iknow-laf...
0% Creating staging directory
5% Scanning for jsp files.
20% Scanning files on local disk.
25% Scanned 250 files.
28% Scanned 500 files.
31% Scanned 750 files.
33% Initiating update.
34% Cloning 25 static files.
35% Cloning 778 application files.
36% Cloned 100 files.
37% Cloned 200 files.
37% Cloned 300 files.
37% Cloned 400 files.
37% Cloned 500 files.
37% Cloned 600 files.
37% Cloned 700 files.
40% Uploading 65 files.
52% Uploaded 16 files.
61% Uploaded 32 files.
68% Uploaded 48 files.
73% Uploaded 64 files.
90% Deploying new version.
95% Will check again in 1 seconds
98% Will check again in 2 seconds
99% Will check again in 4 seconds
99% Closing update: new version is ready to start serving.
99% Uploading index definitions.

Update completed successfully.
Success.
Cleaning up temporary files...

最後まで行きました!!

アプリケーションにアクセスしてみると、、

エラーになりましたが、Railsは動いているようです!やった!!
GAEはコンソール画面でログなどを見れるようなので、次回以降それを見ながらデバッグして、動かすところまでがんばります。