JRuby on Rails не работи с Tomcat, работещ като услуга на Windows Server 2008

проблем

Изглежда, че работата на Tomcat като услуга не работи добре с Rails 3 приложения, които са опаковани с помощта на warble. Разглеждайки регистрационните файлове, изглежда, че има или кръгова зависимост, или зависимост, която се разрешава динамично, но не може да бъде намерена, така че зацикля. В крайна сметка org.jruby.exceptions.RaiseException: stack level too deep се хвърля. Въпреки това, когато използвам startup.bat, за да стартирам Tomcat вместо това, този проблем не възниква.

Всяка помощ ще бъде оценена! Отчаяно търсех отговор на това. Благодаря предварително!

Платформа за внедряване

  • Windows Server 2008 (64-битова)
  • Apache Tomcat 6.29 (64-битов)
  • JDK 1.6
  • Релси 3
  • jruby 1.5.6
  • коприварче (1.2.1)
  • jruby-jars (>= 1.4.0)
  • jruby-rack (>= 1.0.0)

Tomcat localhost.log

http://pastie.org/1308566


person John    schedule 18.11.2010    source източник
comment
Можете ли да опитате да актуализирате Bundler и да опитате отново?   -  person Nick Sieger    schedule 09.12.2010
comment
Ще го пробвам утре, щом отида на работа. Благодаря Ник! Наистина оценявам отговора ви.   -  person John    schedule 10.12.2010
comment
Хей, Ник, изпълнявам Bundler 1.0.7. Все още виждам същия проблем.   -  person John    schedule 15.12.2010


Отговори (3)


Предполагам, че информацията за връзката ви с база данни съдържа неочакван нулев низ, който системата се опитва да преобразува някъде в главни букви. Вижте това съобщение за грешка като подсказка:

в ERB.result(C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/railties-3.0.0/lib/rails/application/configuration.rb:86) в Rails ::Приложение::Configuration.database_configuration(C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activerecord-3.0.0/lib/active_record/railtie.rb:58)

Това може да се коригира с промяна на конфигурацията.

person blueberryfields    schedule 14.12.2010
comment
Вижте конфигурацията на базата данни - ако има смисъл да имате празни или липсващи данни за някои от полетата, опитайте да ги замените с празния низ () или еквивалент. - person blueberryfields; 14.12.2010
comment
Благодаря. Това разреши новия проблем, но сега се върнах към първоначалния проблем. :С - person John; 14.12.2010

Току-що публикувах следното във вашия билет за Jruby [http://jira.codehaus.org/browse/JRUBY-5237]:

Това всъщност е проблем с версията на procrun (Apache Commons Daemon), която се доставя с Tomcat ‹= 6.0.29. Трябва да надстроите или цялата инсталация на Tomcat 6, или версията на procrun, която използвате. Procrun трябва да е >= ​​1.0.4

Надграждане на Tomcat 6: http://tomcat.apache.org/download-60.cgi

Имах точно същия проблем и надстройката го реши вместо мен.

Публикувах на http://techblog.amphora-research.com/2011/03/tomcat-6-stack-level-too-deep-error-on-windows/, ако се интересувате от подробностите.

Късмет!

person elskwid    schedule 04.03.2011

Прегледайте вашата startup.bat конфигурация. Може да се окаже, че Tomcat е стартиран с по-висока настройка на паметта за Java оттук, което позволява рекурсията да завърши, без да изчерпи паметта.

person blueberryfields    schedule 15.12.2010
comment
Благодаря за предложението, но липсата на памет е резултат от неспособността на Bundler да намери подходящия ресурс. - person John; 17.12.2010
comment
Може би тогава е въпрос на променливи на средата? Услугата може да стартира с грешни настройки. Ако прегледате bat файла и проверите настройките, можете да нулирате услугата, за да използва същата (tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html) - person blueberryfields; 17.12.2010