2011-09-09 8 views
0

ChillProject (Redmine 포크, Rails 2.3 앱)에서 warbler를 사용하여 Java Jetty 웹 서버에 배포하려고합니다. 내가 프로젝트의 루트 폴더에서 지저귐을 실행할 때, 그것은 주어진 오류 메시지와 함께 실패합니다ChiliProject에서 JRuby/Jetty를 사용할 때 오류가 발생했습니다.

$ warble --trace 
warble aborted! 
undefined method `gems' for #<Rails::VendorGemSourceIndex:0x2e9267fe> 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:260:in `all_specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/source.rb:172:in `installed_specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/source.rb:162:in `fetch_specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/index.rb:7:in `build' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/source.rb:161:in `fetch_specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/source.rb:70:in `specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:159:in `index' 
org/jruby/RubyArray.java:1603:in `each' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:158:in `index' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/index.rb:7:in `build' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:157:in `index' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:151:in `resolve' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:90:in `specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:135:in `specs_for' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/bundler-1.0.15/lib/bundler/definition.rb:124:in `requested_specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/traits/bundler.rb:102:in `bundler_specs' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/traits/bundler.rb:38:in `add_bundler_gems' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/traits/bundler.rb:29:in `after_configure' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/traits.rb:32:in `after_configure' 
org/jruby/RubyArray.java:1603:in `each' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/traits.rb:32:in `after_configure' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/config.rb:172:in `initialize' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/task.rb:48:in `initialize' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/application.rb:27:in `load_rakefile' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/rake-0.9.2/lib/rake/application.rb:61:in `run' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/lib/warbler/application.rb:70:in `run' 
/Users/razenha/.rvm/gems/jruby-1.6.3/gems/warbler-1.3.2/bin/warble:11:in `(root)' 
org/jruby/RubyKernel.java:1063:in `load' 
/Users/razenha/.rvm/gems/jruby-1.6.3/bin/warble:19:in `(root)' 

나는 JRuby를 1.6.3, JDK 1.6, 명금 1.3.2 ChiliProject 2.2.0 사용하고 있습니다.

답변

0

처음에는 JRuby를 완전히 지원하지 않으므로 슬프게도 실망시켜야합니다. 다른 한편으로, "유일한"인코딩 문제가있을 수 있으므로 수정하는 경우가 있으므로 신중할 경우 문제가 해결됩니다.

레일즈 2.3이 번들러와 너무 잘 어울리지 않는 것처럼 보입니다. 다음 파일을 ChiliProject 디렉터리의 lib/redmine/core_ext/vendor_gem_source_index.rb에 넣으면, 저격병을 실행할 수 있습니다.

class Rails::VendorGemSourceIndex 
    def gems 
    @installed_source_index.gems.merge @vendor_source_index.gems 
    end 
end 

올바른 번들러 그룹을 사용하도록 warbler를 구성해야합니다. 왜곡 된 부분은 여기에 있습니다. (아직 번들로 묶인 앱을 사용하지 않았기 때문에) 이것을 구성하는 방법을 알아야 할 수도 있습니다. 자세한 내용은 GemfileBundler page을 참조하십시오.

당신이 잔소리하는 경우 언젠가는 공식적으로 다음과 같이 지원할 수도 있습니다. :) 더 친한 사람들은 우리 자신의 ForumsIRC에서 찾을 수 있습니다.

+0

JRuby에 지원을 추가하십시오. = ( – razenha

+0

https://www.chiliproject.org에서 문제를 생성하십시오. 사용하려는 방법, 즉 앱 배포 방법을 추가하십시오. 실제로 JRuby/warbler에 익숙하지는 않지만 그것을 시도하려고합니다. –