Ruby on Rails 3.2.8 アプリを MRI 1.9.3 から JRuby 1.6.7 に移植しています。
Rails アプリ自体は JRuby に対応しています。JRuby で動作するように twitter-boot ストラップを取得するには、いくつかの手順を踏まなければなりませんでした。すべてのテストに合格し、アプリは(経由で) Webrickbundle exec rails server
で実行されます。
mizunoの下で実行しようとすると、次の奇妙なエラーが発生します。
bundle exec mizuno -d
java.lang.ClassNotFoundException: Jruby-opensslService
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at org.jruby.util.JRubyClassLoader.findClass(JRubyClassLoader.java:86)
<a few thousands more lines>
(Java が悪いと思っているなら、JRuby はスタックを吐き出す方法を本当に知っています。)
あなたも私と同じことを考えていると思いますが、Gemfile にはjruby-opensslが含まれています。
bundle list | grep openssl
* jruby-openssl (0.7.7)
JRUBY_OPTS を使用しない私の JRuby ランタイム:
jruby -v
jruby 1.6.7.2 (ruby-1.9.2-p312) (2012-05-01 26e08ba) (OpenJDK 64-Bit Server VM 1.7.0_03) [linux-amd64-java]
知恵の真珠を持っている人はいますか?