开发者

jRuby and Problems with Warbler, RVM, and Tomcat

开发者 https://www.devze.com 2023-01-19 15:10 出处:网络
I\'ve been having a tough time getting jRuby on Rails 3 deployed on Tomcat 6. I got it to work exactly once.

I've been having a tough time getting jRuby on Rails 3 deployed on Tomcat 6. I got it to work exactly once.

I modified my database.yaml and Gemfile to check for jRuby, something like this:

if defined?(JRUBY_VERSION)
    gem 'jdbc-mysql'
    #gem 'jdbc-sqlite3'
    gem 'activerecord-jdbc-adapter'
    gem 'activerecord-jdbcmysql-adapter'
    #gem 'activerecord-jdbcsqlite3-adapter'
    gem 'jruby-openssl'
    gem 'jruby-rack'
    gem 'warbler'
else
    gem 'mysql'
    gem "mongrel"
    gem 'ruby-debug'开发者_StackOverflow社区
end

Some environment settings:

$ rvm -v
rvm 1.0.14 

$ jruby -v
jruby 1.5.3 (ruby 1.8.7 patchlevel 249) (2010-09-28 7ca06d7) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20) [x86_64-java]

When I run jruby -S bundle install everything goes smoothly.

It's when I try to do something like rake db:migrate, jruby -S rake db:migrate or warble that I get 50 DEPRECATION WARNINGs and an eventual stackoverflow.

I solved this issue by deleting the warbler plugin, it did not like the line Warbler::Task.new

Next, I ran warble config to give me a config/warbler.rb file.

And finally, warble to create my .war file. So far so good.

Now I move the .war file to my Tomcat webapps. Everything works fine except for an error:

Oct 10, 2010 1:34:46 AM org.apache.catalina.core.ApplicationContext log
SEVERE: Application Error

org.jruby.rack.RackInitializationException: 
http://github.com/plataformatec/devise.git (at master) is not checked out. 
Please run 'bundle install'

I solved this problem once and only once by going into my webapps/myapp/WEB-INF and running jruby -S bundle install

It no longer works and I have no idea what is going on.


I believe this can be called a bug in the current version of Warbler. Using git repositories in your Gemfile don't quite get staged properly in the war file and Bundler is still looking for a checked out repository on disk.

A future version of Warbler will probably do something along the lines of bundle --deployment when you create the war file.

For now, to work around, you might have to vendor the devise code.


The current version of warbler (1.3.6) will also exhibit this behavior if you build a war file with warbler war. I've found that building with the following command works:

warbler compiled war

Hopefully future versions will address this more completely.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号