現在、gem Nokogiri をアプレットで動作させようとして、実際に問題が発生しています。jruby-complete-1.7.3 jar があり、通常のインストール ラインを使用して gem をインストールしようとしました。
java -jar jruby-compelete-1.7.3.jar -S gem install nokogiri
また、Gem-In-A-Jar メソッドも試しました。最初は問題なく動作し、Ruby コードを評価して、返されたデータを保存することができました。次の行を追加すると、問題が発生します。
require 'nokogiri'
その行は irb で正常に動作しますが、アプレットからアクセスしようとすると、次のエラーが発生します。
classpath:/META-INF/jruby.home/lib/ruby/shared/rubygems.rb:396 warning: can't
canonicalize loaded names due to security restrictions; disabling
Message: (LoadError) no such file to load -- nokogiri
スタックトレース:
org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- nokogiri
at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1027)
at RUBY.require(classpath:/META-INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36)
at RUBY.(root)(<script>:2)
この例外が発生する理由がわかりません。私はもう試した:
- gem を「META-INF/jruby.home/lib/ruby/gems/shared」フォルダーに手動で移動する
- nokogiri 呼び出しの上に「require 'rubygems'」を追加しました。
- Gems-in-a-jar メソッドによる gem へのアクセス: http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar/
どこが間違っているのか、またはこの問題の解決策を誰かが知っている場合は、大いに感謝します。