Seesaaブログから引っ越した。洗練されたものを目指します。投稿を表示しています。投稿を表示しています。Abstract熱海はハードル高いので、まずは自宅だよね。allowedなどを参照して、ローカルPC(XP)でGAEの実験してたわけだが、これまで当方の環境では、ThreadErrorを吐くなど不具合があり、寸分も動作しなかった。この度、やっと動作を確認できたので、ここに試行錯誤をまとめて示そうと思う。結論だけ先に挙げますと、gemパッケージ内の主にJRubyに何らかの原因がありいくつか不具合現象が生じていたが、gemの更新により、それらが解消された、というつまらないことなのですが...。それに加えて、今回ちょっと特殊なのは:XPのアカウント名が日本語だったこと動作確認にCygwinも用いたことになります。上記に起因する不具合現象について、相当調査し(ぐぐっ)たが、エラーそのものも含めて、全然情報がなかった。ActiveScriptRubyやCygwinという当方とまったく同じ環境でも、何の問題も無く、みんなすんなり動いてるようでした。本稿ではまず、1.に実験した環境・構成を示します。次に2.にて、当初存在した不具合現象を示します。3.に今回成功した修正方法を、4.に修正後の動作結果を示します。最後に、修正方法を5.結論に述べ、今後の課題を6.とします。リファレンスと付録を、それぞれ7.、8.とします。以下、(1)~(2)に、環境・構成等を示す。XPは、以下XPと略す。Cygwin/XPは、XP上にインストールしたCygwinを示す。consoleから行った。Cygwin/XPでの実験は、Cygwinのコンソールから行った。mode)AcriveScriptRuby、Cygwin/XP上のruby両者で、動作することを確認できた。実行時に下記ログに示されるような現象である(一部、当方で入れたデバッグ用のメッセージも含む)。(1)、(3)に関しては、google-appengineパッケージの更新(下記(1))で、修正されることがわかった。不具合現象(2)については、パッケージ内のスクリプトの一部のパスの指定方法に、問題があることがわかった(下記(2))。下記(1)、(2)に回避・修正方法を示す。gemファイルの更新エラーログから、jruby-jar等に問題があることが推測された。google-appengineのgemを最新のものに更新することで、当該現象は発生が抑えられた。#{AppEngine::SDK::AGENT_JAR}`.chompこれもっと綺麗な方法ないかな、とも思いますが・・・。4.動作結果ブラウザからhttp://localhost:8080/にアクセスすれば、所望の結果が得られる。http://localhost:8080/5.結論JRuby(jruby-jars)は、バージョンによってはActiveScriptRuby、もしくはCygwin/XPにおいて、ThreadErrorにより動作しないgemパッケージ:google-appengineを、最新のバージョンに更新する。ラッピングしてjavaコマンドに渡されるように、dev_appserver.rbを修正する。Cygwin/XP両者の環境で、ローカルPC上で、GAE/JRubyの動作を確認できた。彼女を作る不具合現象の原因となるgemパッケージの依存関係、ThreadErrorの生じる箇所については、今回あきらめた。JRubyの内部動作に強い興味を持つ向きは、探ってみてもよいかもしれない。不具合現象(1)の発生は、3.回避・修正方法の(1)により、抑えられる。類似の現象を未然に防止するため、Gemリポジトリの設定をしておいたほうがよいかもしれない。本稿の場合、3.appcfg.rbから実行されるgemにおいて、リポジトリ処理に日本語パス名起因である不具合現象(1)が、当初存在していた。AcitiveScriptRubyの場合、特に指定がなければ、リポジトリはディレクトリ:%HOME%となる。これを防ぐには、google-appengineパッケージの更新、もしくは環境変数GEM_HOMEを、適切に設定する。設定方法は、コンパネ>システム>詳細設定、またはコマンド・プロンプトで、環境変数:GEM_HOMEを、日本語を含まないパスに設定するである。CygwinCygwinに関しては、ホーム・ディレクトリを、日本語パス名を含まないものに変更している。テキストで入力された日付を、日付値に変換する方法。