Контекст не установлен должным образом с warbler и tomcat
Я пытаюсь развернуть приложение Rails в Tomcat с помощью файла war, созданного Warbler. Файл war развертывается в / myproject-rails-gui без проблем, но когда я пытаюсь получить доступ к странице приложения, я получаю:
ArgumentError: wrong number of arguments (1 for 0)
send at org/jruby/RubyKernel.java:2097
Railtie at /home/myproject/apache-tomcat-7.0.22/webapps/myproject-rails-gui/WEB-INF/gems/gems/actionpack-3.0.10/lib/action_controller/railtie.rb:54
Это терпит неудачу, когда это пытается установить относительный_url_root. Существуют другие статьи о переполнении стека, которые (правильно) указывают на то, что относительный_url_root устарел, и вместо этого вам следует установить переменную среды RAILS_RELATIVE_URL_ROOT.
module ActionController
class Base
# Deprecated methods. Wrap them in a module so they can be overwritten by plugins
# (like the verify method.)
module DeprecatedBehavior #:nodoc:
def relative_url_root
ActiveSupport::Deprecation.warn "ActionController::Base.relative_url_root is ineffective. " <<
"Please stop using it.", caller
end
def relative_url_root=
ActiveSupport::Deprecation.warn "ActionController::Base.relative_url_root= is ineffective. " <<
"Please stop using it.", caller
end
Однако мне не повезло понять, как это сделать, используя Warbler и Tomcat. Какие-либо предложения? Что бы это ни стоило, приложение прекрасно работает, когда я запускаю его в корневом контексте.
Моя среда:
- Славка 1.3.2
- Tomcat 7.0.22
- JRuby 1.6.5
- Rails 3.0.10
1 ответ
После долгих копаний похоже, что это исключение было вызвано отсутствием параметра в ActionController::DeprecatedBehavior.relative_url_root= в Rails v3.0.10. Мигель, ваша проблема может быть связана, но, если вы видите ее в Rails v3.1.1, то она немного отличается. Файл, который мне пришлось изменить, чтобы исправить это, не существует в v3.1.1.
Я подал проблему 3645 в проект Rails на Github, исправил ее в форке и отправил им запрос на извлечение. Надеюсь, это будет исправлено в новой версии Rails 3.0.
Тем временем, если вы хотите использовать мою фиксированную версию, она доступна по адресу https://github.com/mhuffnagle/rails/tree/3-0-stable.