JRuby loadpath испортил - PullRequest
       23

JRuby loadpath испортил

0 голосов
/ 31 марта 2011

Я встраиваю JRuby в файл JAR, и он используется файлом EAR, который я развертываю в WebSphere. Когда я вызываю класс из моей рабочей области, он работает нормально, однако, когда я вызываю его внутри WebSphere, вот что я получаю:

[3/31/11 11:21:15:984 BRT] 00000042 SystemErr     R classpath:/lib/xmlcompare.rb:4:in `require': no such file to load -- rubygems (LoadError)
    from classpath:/lib/xmlcompare.rb:4
    from classpath:/lib/xmlcompare.rb:1:in `require'
    from <script>:1

После некоторых исследований я заметил, что когда я запускаю код в файле JAR из командной строки, путь загрузки выглядит следующим образом:

lib
lib/gems/builder-3.0.0/lib
lib/gems/rainbow-1.1.1/lib
lib/gems/syntax-1.0.0/lib
lib/gems/xml-simple-1.0.14/lib
file:/C:/RSA/workspace/sdops-XmlCompare/pkg/XmlCompare.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8
file:/C:/RSA/workspace/sdops-XmlCompare/pkg/XmlCompare.jar!/META-INF/jruby.home/lib/ruby/site_ruby/shared
file:/C:/RSA/workspace/sdops-XmlCompare/pkg/XmlCompare.jar!/META-INF/jruby.home/lib/ruby/1.8
.

Однако после развертывания JAR в WebSphere (в комплекте с EAR) вот как выглядит путь загрузки:

lib
lib/gems/builder-3.0.0/lib
lib/gems/rainbow-1.1.1/lib
lib/gems/syntax-1.0.0/lib
lib/gems/xml-simple-1.0.14/lib
C:/WINDOWS/TEMP//lib/ruby/site_ruby/1.8
C:/WINDOWS/TEMP//lib/ruby/site_ruby/shared
C:/WINDOWS/TEMP//lib/ruby/1.8
.

Я попытался добавить еще несколько записей в путь загрузки:

Как это сделать:

lib
lib/gems/builder-3.0.0/lib
lib/gems/rainbow-1.1.1/lib
lib/gems/syntax-1.0.0/lib
lib/gems/xml-simple-1.0.14/lib
META-INF/lib/ruby/site_ruby/1.8
META-INF/lib/ruby/site_ruby/shared
META-INF/lib/ruby/1.8
C:/WINDOWS/TEMP//lib/ruby/site_ruby/1.8
C:/WINDOWS/TEMP//lib/ruby/site_ruby/shared
C:/WINDOWS/TEMP//lib/ruby/1.8
.

Но это ничего не изменило.

Есть ли у вас какие-либо подсказки, почему путь загрузки поврежден при работе внутри WebSphere и как это исправить?

1 Ответ

3 голосов
/ 01 апреля 2011

Попробуйте добавить следующее в $ LOAD_PATH:

META-INF/jruby.home/lib/ruby/site_ruby/1.8
META-INF/jruby.home/lib/ruby/site_ruby/shared
META-INF/jruby.home/lib/ruby/1.8
...