jRuby 和 Warbler、RVM 和 Tomcat 的问题

soundcode 阅读:47 2024-02-27 23:08:18 评论:0

我一直很难在 Tomcat 6 上部署 jRuby on Rails 3。我只让它工作了一次。

我修改了我的 database.yaml 和 Gemfile 以检查 jRuby,如下所示:

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' 
end 

一些环境设置:

$ 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] 

当我运行 jruby -S bundle install 时一切顺利。

当我尝试执行类似 rake db:migratejruby -S rake db:migratewarble 的操作时,我得到了 50弃用警告和最终的计算器溢出。

我通过删除 warbler 插件解决了这个问题,它不喜欢行 Warbler::Task.new

接下来,我运行 warble config 给我一个 config/warbler.rb 文件。

最后,warble 创建我的 .war 文件。到目前为止一切顺利。

现在我将 .war 文件移动到我的 Tomcat 网络应用程序中。除错误外,一切正常:

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' 

我通过进入我的 webapps/myapp/WEB-INF 并运行 jruby -S bundle install

一次性解决了这个问题

它不再有效,我不知道发生了什么。

请您参考如下方法:

我相信这可以称为当前版本的 Warbler 中的一个错误。在您的 Gemfile 中使用 git 存储库并不能完全正确地在 war 文件中暂存,Bundler 仍在磁盘上寻找已 checkout 的存储库。

当您创建 war 文件时, future 版本的 Warbler 可能会按照 bundle --deployment 的方式执行某些操作。

目前,要解决这个问题,您可能必须提供设计代码。


标签:Tomcat
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号