non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

RingoJSをGoogle App Engineで動かす #2013

こんばんは、大人が教えるもの名前をずいぶんと上手に真似できるように息子がなったkjunichiです。

 

0.8を昨年使っていくつか記事を書いた。 今年になって0.9がリリースされていた。

が、0.9はダメだった

そもそもringo-adminがまともに動かない。 結局ringo-adminを動くようにしデプロイしたが、スレッド周りでセキュリティーエラーが 動かない!

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup")
at org.ringojs.engine.RhinoEngine$1.<init>(RhinoEngine.java:142)
at org.ringojs.engine.RhinoEngine.<init>(RhinoEngine.java:142)
at org.ringojs.jsgi.JsgiServlet.init(JsgiServlet.java:107)

そんなわけで、GitHubでソースを取ってきてビルドする羽目になる。

Ubuntuのセットアップ

何はなくともSDK

googleからGAEのSDKを落としてくる

javac入れた

openjdk-7を入れた

インストール後にJava環境の設定を変更する必要あり。

sudo apt-get install openjdk-7-jdk  
sudo update-alternatives --config java

antとivyのインストール

ivyのjarをクラスパスに追加する必要あり。

sudo apt-get install ivy                                                                                             
sudo apt-get install ant
export CLASSPATH=/usr/share/java/ivy-2.2.0.jar:.                                                                                                             

ringojsのビルド

git clone https://github.com/oberhamsi/ringojs.gitgit clone 
cd ringojs
ant update
ant jar

ringo-adminでwebアプリを作成

bin/ringo-admin create --google-appengine ../hogewebapp

appcfg.shでのデプロイ

対象のGoogleのアカウントを2段階認証にしていると、いくらやっても認証が通らない罠にはまる

アプリケーション固有のパスワードを発行させ、これを入力する。(2回目以降はパスワード聞かれない模様)

取り急ぎ確認するだけなので、 -AオプションでアプリケーションIDをコマンドラインで指定

appcfg.sh -e メールアドレス -A アプリのID update hogewebapp/

関連記事