GAE/JRubyでハマったところ

 こんにちは。那由多屋の加藤です。

 google-appengineというgemパッケージができてから、GAE(Google App Engine)上でのRuby開発がとても楽になりました。

 そんなGAE/JRubyでの開発で、ハマったところについてメモしておきます。

 ちなみに環境は、google-appengine 0.0.8、appengine-jruby-jars 0.0.6、appengine-sdk 1.3.0、appengine-tools 0.0.8。

memcacheに日本語を格納すると文字化け

 memcacheに日本語を格納すると、なぜか文字化け。BASE64エンコード/デコードすることで対処しました。

memcacheが失効せず?

 memcacheに失効期限を付けてset/addしても、なぜか失効せず。キーに「UNIX時間(秒単位)を失効時間(秒)で割った値」を入れることで対処しました。

nokogiriが使えない

 nokogiriパッケージは拡張ライブラリが必要なため、動作しませんでした。hpricotを使うことで対処しました。

jsonが使えない

 jsonパッケージは拡張ライブラリが必要なため、動作しませんでした。jsonのPure Ruby版のjson_pureパッケージを使うことで対処しました。

nkfが使えない

 NKFモジュールは、JRubyでは完全には実装されていないようです。ひとまずnkf -Z1だけが動作すれば良かったので、Pure Ruby版の99%非互換モジュールを作りました。gem install nayutaya-pure-nkfでインストールできます。

遅い

 素直に諦めることで対処しました。