Не удалось развернуть приложение Rails в WebLogic


Я пытаюсь развернуть очень простое приложение Rails на сервере Oracle WebLogic. Это просто приложение по умолчанию, созданное командой типа «jruby -S rails new myapp».
Он отлично работает, если я запускаю сервер разработки ("jruby -S rails server"). Но когда я развертываю его в WebLogic, я получаю исключение:

org.jruby.rack.RackInitializationException: no method 'getInstance' for arguments (org.joda.time.tz.CachedDateTimeZone) on Java::OrgJodaTimeChrono::GJChronology


Моя среда:
ОС: Windows 8.1
Java: Java(TM) SE Runtime Environment (сборка 1.7.0_40-b43)
jRuby: jruby 1.7.10 ( 1.9.3p392) 09.01.2014 c4ecd6b
WebLogic: 12.1.2
Rails: 4.0.2
Warbler: 1.4.0


person Kurt Holz    schedule 16.01.2014    source источник


Ответы (1)


это распространенная проблема с WebLogic, вызванная конфликтующей библиотекой JodaTime (jar).

это можно исправить, добавив дескриптор weblogic.xml и указав WL "предпочитать" (Java) классы из сведений WEB-INF/lib на вики: https://github.com/jruby/jruby-rack/wiki/Развертывание-с-WebLogic

person kares    schedule 18.01.2014
comment
Вы проверили, что weblogic.xml был помещен в .war под WEB-INF? - person kares; 20.01.2014
comment
Да! Я проверил это как в сгенерированной войне, так и в папке WebLogic, где она была развернута.‹br/› Кроме того, я заметил, что нет файла joda-time*.jar ни в папке jRuby, ни в папке моего приложения. Может ли это быть причиной моей беды? - person Kurt Holz; 20.01.2014
comment
классы joda являются частью jruby-core.jar, это должно быть проблемой конфигурации WL, чем - вам нужно убедиться, что он действительно предпочитает классы приложений, а не те, что в CP WL, где-то может быть параметр WL, который все еще отключает его или что-то в этом роде - вы должны виднее, так как у вас есть сервер на ваших отпечатках пальцев! - person kares; 20.01.2014
comment
Хех, я перезагрузил WebLogic и теперь все работает нормально. :)‹br/› Спасибо! - person Kurt Holz; 20.01.2014