【问题标题】:jRuby and Problems with Warbler, RVM, and TomcatjRuby 和 Warbler、RVM 和 Tomcat 的问题
【发布时间】:2010-10-10 10:59:35
【问题描述】:

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

我修改了我的 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::Task.new这一行

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

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

现在我将 .war 文件移动到我的 Tomcat webapps。一切正常,除了一个错误:

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 解决了这个问题一次且仅一次

它不再起作用,我不知道发生了什么。

【问题讨论】:

    标签: jruby rvm jrubyonrails warbler


    【解决方案1】:

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

    当您创建 war 文件时,Warbler 的未来版本可能会像 bundle --deployment 那样做一些事情。

    目前,要解决此问题,您可能需要提供设计代码。

    【讨论】:

    • 消除 :git 指令解决了问题。但由于某种原因,我还需要删除我的 warble.rb 文件。
    【解决方案2】:

    如果您使用warbler war 构建war 文件,当前版本的warbler (1.3.6) 也会出现此行为。我发现使用以下命令进行构建是可行的:

    warbler compiled war
    

    希望未来的版本能更全面地解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2014-12-27
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多