繁体   English   中英

在Rails应用程序上部署jruby

[英]deployment for jruby on rails app

我正在尝试在Rails应用程序上部署一个jruby。

现在,我正在使用来自mod_proxy的反向代理运行mongrel + Apache2。 但是,由于mongrel_jcluster不适用于最新版本的jruby,因此我只能运行一个mongrel服务器,并且无法利用apache2的负载平衡功能。

还有其他方法可以创建杂种群集吗? 我真的更喜欢杂种集群+ apache2而不是Java servlet类型的系统。

我已经按照这里的说明尝试了码头: http : //jetty-rails.rubyforge.org/

但是即使我已经在jruby及其下的0.9.7版本下检查了我的activerecord-jdbcmysql-adapter gem版本,但在启动码头服务器时却遇到以下错误

DEPRECATION WARNING: require "activesupport" is deprecated and will be removed in Rails 3. Use require "active_support" instead. (called from /home/andrew/.gem/jruby/1.8/gems/activesupport-2.3.8/lib/activesupport.rb:2)
2010-07-20 17:00:46.820::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
Starting server 3000
2010-07-20 17:00:47.134::INFO:  jetty-6.1.14
2010-07-20 17:01:03.511:/:INFO:  Info: using runtime pool timeout of 30 seconds
2010-07-20 17:01:03.511:/:INFO:  Info: received min runtimes = 1
2010-07-20 17:01:03.511:/:INFO:  Info: received max runtimes = 5
Loading parser from serialized file lib/stanford-parser/englishPCFG.ser.gz ... done [4.6 sec].
2010-07-20 17:01:14.341:/:WARN:  Error: unable to initialize application
org.jruby.rack.RackInitializationException: Please install the jdbcmysql adapter: `gem install activerecord-jdbcmysql-adapter` (no such file to load -- active_record/connection_adapters/jdbcmysql_adapter)

任何建议将不胜感激,谢谢!

编辑:我不知道这是否有所作为,但我能够告诉您,在崩溃之前,jetty_rails成功加载了在environment.rb中声明的全局变量

编辑:这是我从jruby -S gem list --local完整宝石列表

*** LOCAL GEMS ***

actionmailer (2.3.8)
actionpack (2.3.8)
activerecord (2.3.8)
activerecord-jdbc-adapter (0.9.7)
activerecord-jdbcmysql-adapter (0.9.7)
activeresource (2.3.8)
activesupport (2.3.8)
builder (2.1.2)
gem_plugin (0.2.3)
jdbc-mysql (5.0.4)
jetty-rails (0.8.1)
jruby-jars (1.5.1)
jruby-openssl (0.7)
jruby-rack (1.0.1)
mizuno (0.3.6)
mongrel (1.1.5)
rack (1.1.0)
rails (2.3.8)
rake (0.8.7)
rubyzip (0.9.4)
sources (0.0.1)
warbler (1.1.0)

也许您正在多个红宝石解释器之间切换(通过RVM或手动)。 通过使用Jruby运行“ gem list”,确保具有2.3.8的rails gem及其依赖项。

如果您在Jruby下没有gems,请运行“ gem install -v = 2.3.8 rails”。 您可以通过运行“ rake rails:freeze:gems”将rails gem打包到项目树中。

我知道的唯一可能的答案是,系统上有两个红宝石解释器,而码头环境所捡拾的那个解释器缺少宝石。 ruby -v给您的答案与jruby -v不同吗?

话虽如此,您是否有理由不想使用Warble并向Jetty或Tomcat部署战争? 我发现效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM