Я встраиваю 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 и как это исправить?