Падрино и Тринидад: неопределенный метод `register 'для Rack :: Handler: Module - PullRequest
0 голосов
/ 12 марта 2012

Попытка запустить приложение sample_blog на основе платформы Padrino на Тринидаде выдает странную ошибку

неопределенный метод `register 'для Rack :: Handler: Module

Использование: Trinidad-1.3.4 JRuby-стойка 1.1.4

Ниже приведена трассировка стека

ip-192-168-1-126: $ trinidad -p 4000
    Mar 11, 2012 6:05:24 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-4000"]
    Mar 11, 2012 6:05:24 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Tomcat
    Mar 11, 2012 6:05:24 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
    2012-03-11 23:05:24 INFO: No global web.xml found
    2012-03-11 23:05:25 INFO: jruby 1.6.7 (ruby-1.8.7-p357) (2012-02-22 3e82bc8) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_29) [darwin-x86_64-java]
    2012-03-11 23:05:34 INFO: Info: received min runtimes = 1
    2012-03-11 23:05:35 INFO: Info: received max runtimes = 5
    2012-03-11 23:05:35 INFO: An exception happened during JRuby-Rack startup
    **undefined method `register' for Rack::Handler:Module**
    --- System
    **jruby 1.6.7 (ruby-1.8.7-p357) (2012-02-22 3e82bc8) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_29) [darwin-x86_64-java]**
    Time: Sun Mar 11 18:05:34 -0500 2012
    Server: Apache Tomcat/7.0.23
    jruby.home: /Users/dayas/.rbenv/versions/jruby-1.6.7

    --- Context Init Parameters:
    jruby.compat.version = 1.8.7
    jruby.initial.runtimes = 1
    jruby.max.runtimes = 5
    jruby.min.runtimes = 1
    public.root = /public
    rack.env = development
    rackup.path = config.ru

    --- Backtrace
    **NoMethodError: undefined method `register' for Rack::Handler:Module**
             (root) at /Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/mizuno-0.5.1/lib/mizuno/http_server.rb:179
            require at org/jruby/RubyKernel.java:1033
             (root) at /Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/mizuno-0.5.1/lib/mizuno/http_server.rb:26
            require at org/jruby/RubyKernel.java:1033
            require at /Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/mizuno-0.5.1/lib/mizuno.rb:68
               each at org/jruby/RubyArray.java:1615
            require at /Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/bundler-1.1.0/lib/bundler/runtime.rb:66
               each at org/jruby/RubyArray.java:1615
            require at /Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/bundler-1.1.0/lib/bundler/runtime.rb:55
            require at /Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/bundler-1.1.0/lib/bundler.rb:118
             (root) at /Users/dayas/RubyProjects/trying_new_padrino/sample_blog/config/boot.rb:8
            require at org/jruby/RubyKernel.java:1033
             (root) at /Users/dayas/RubyProjects/trying_new_padrino/sample_blog/config/boot.rb:7
      instance_eval at org/jruby/RubyKernel.java:2045
         initialize at file:/Users/dayas/.rbenv/versions/jruby-1.6.7/lib/ruby/gems/1.8/gems/jruby-rack-1.1.4/lib/jruby-rack-1.1.4.jar!/vendor/rack-1.4.1/rack/builder.rb:51
             (root) at /Users/dayas/RubyProjects/trying_new_padrino/sample_blog/config.ru:1

1 Ответ

0 голосов
/ 12 марта 2012

у вас, похоже, gem 'mizuno' в вашем Gemfile , который зависит от стойки и каким-либо образом конфликтует.мы уже видели подобную проблему с самой Тринидад https://github.com/trinidad/trinidad/issues/29

, но я не думаю, что это та же самая причина, во-первых, я бы порекомендовал объявить зависимости вашего сервера "правильно" http://log.kares.org/2012/03/managing-server-dependencies-with.html

так что ваш Gemfile , вероятно, должен выглядеть следующим образом:

gem 'trinidad', :require => nil
gem 'mizuno', :require => nil

, кроме того, я бы также рекомендовал использовать bundle exec trinidad, чтобы избежать загрузки "конфликтующего" гема до того, как пакет сработает ...

...