JRuby On Rails安装配置详解

开发 后端
本文向你介绍JRuby On Rails安装配置的过程,包括JRuby On Rails安装环境的配置,Rails的安装、config文件的修改等。

最近安装了Jruby On Rails,发现网上虽然有很多资料可以参考,但是由于各种组件的不断更新,很多资料已经过时,容易产生误导,在这里介绍一下我个人的安装经过,供大家参考.

首先是安装环境,不同的软件版本可能导致不同的安装结果.我使用的环境是:

JDK------------------1.6.0_06
TOMCAT--------------6.0.16
MYSQL---------------5.0.22
JRUBY---------------1,1
RAILS----------------2.0.2
WARBLER------------0.9.5

接下来开始安装,JDK,TOMCAT,MYSQL的安装就不说了,别忘了配置JAVA_HOME环境变量.
接下来解压JRUBY,将JRUBY_HOME指向解压后的文件路径,CLASSPATH指向该路径的LIB.接下来转到JRUBY的BIN路径下,开始以下的安装;

1,安装RAILS,运行:

  jruby gem install rails -r -y --no-ri --no-rdoc

2,安装Rails框架的数据库接口和MYSQL适配器,运行:

  jruby gem install activerecord-jdbc-adapter -r -y --no-ri --no-rdoc
  jruby gem install activerecord-jdbcmysql-adapter -r -y --no-ri --no-rdoc

这里要说明一下,有些资料说要安装ActiveRecord-JDBC,其实ActiveRecord-JDBC和activerecord-jdbc-adapter是同一种东西,只是名字换了,版本不同,ActiveRecord-JDBC的版本是0.5,activerecord-jdbc-adapter现在是0.8.另外因为安装了activerecord-jdbcmysql-adapter,所以java语言MySQL数据库接口软件包就不用下载安装了.

以上的模块安装完毕就可以创建一个RAILS工程了,例如:jruby -S rails demo

随后修改config/database.yml,像是这样:

  adapter: jdbcmysql
  hostname: localhost
  database: test
  username: root
  password:

这里再补充一点,有的资料说要修改config/environment.rb,要添加

  1. if RUBY_PLATFORM =~ /java/   
  2.     require 'rubygems'   
  3.     RAILS_CONNECTION_ADAPTERS = %w(jdbc)   
  4. end  

其实这项修改是针对RAILS2.0以前的版本的,现在的2.0.2已经不用改了.这一点在activerecord-jdbc-adapter的文档有说明.

以上设置完毕就可以启动WEBrick运行RAILS程序了.下面再说说RAILS程序如何部署到TOMCAT中.Goldspike已经稍显陈旧了,现在我们可以使用更好的warbler.在JRUBY的BIN路径下运行:

  jruby gem install warbler -r -y --no-ri --no-rdoc

这样warbler就安装好了,接下来如果在RAILS工程下打包,是可以生成.war文件的,但是放在TOMCAT下跑会有问题,原因是因为warbler没有把数据库连接的内容打到包里去.其实这也不是warbler的BUG,warbler无法知道用户连接何种数据库以及用什么方式连接,所以你需要自己配一下,修改

jruby-1.1\lib\ruby\gems\1.8\gems\warbler-0.9.5\generators\warble\templates\warble.rb文件,

在以下的位置:

  1. # config.gems = ["activerecord-jdbc-adapter", "jruby-openssl"]   
  2. # config.gems << "tzinfo"   
  3. # config.gems["rails"] = "1.2.3"   

添加:

  %w{jdbc-mysql activerecord-jdbcmysql-adapter activerecord-jdbc-adapter}.each{|g| config.gems << g}

注意,上面的warble.rb其实并不是warbler打包的配置文件,它是一个生成配置文件的模板文件,要生成配置文件须要到RAILS工程路径下运行:

  jruby -S warble config

这时你在工程路径下config文件夹会找到一个warble.rb,这才是warbler打包的配置文件.上面的添加内容你也可以不在模板文件中添加,而是直接在这里添加.这一步完成后就可以打包了,运行:

  jruby -S warble war

把.war文件拷贝到TOMCAT的webapps下就可以运行了,但是会看到以下错误:

Rails Error: No :secret given to the #protect_from_forgery call. Set that or use a session store capable of generating its own keys (Cookie Session Store)

解决的对策是编辑该工程的web.xml文件,添加以下内容

  1. <context-param>   
  2.   <param-name>jruby.session_store</param-name>   
  3.   <param-value>db</param-value>   
  4. </context-param>  

以上的修改也可以在模板文件jruby-1.1\lib\ruby\gems\1.8\gems\warbler-0.9.5\web.xml.erb中进行,这样就不用每次都要修改工程的web.xml文件了.现在一切正常了.

 

【编辑推荐】

  1. JRuby性能优化的四点建议
  2. 如何在tomcat上配置jruby on rails
  3. JRuby是什么? JRuby语言概览
  4. JRuby中调用java带可变参数的方法
  5. 使用JRuby生成JVM代码
责任编辑:佚名 来源: JavaEye
相关推荐

2009-07-17 16:17:04

在tomcat上配置j

2009-07-09 15:58:40

Ubuntu JDK安

2010-09-10 20:19:34

tftp server

2009-07-20 15:37:26

JRuby安装JRuby配置

2009-09-17 13:32:48

WSUS服务器

2010-03-11 13:54:01

Python安装配置

2017-01-05 21:55:11

WindowsNano Server远程管理

2017-01-05 15:07:59

2017-01-05 22:28:16

WindowsNano Server部署

2009-07-17 17:11:47

Ruby生成JVM代码

2014-07-30 13:37:15

ubuntu14.04bochs

2011-02-25 17:48:52

2010-06-07 11:22:28

2011-04-02 14:21:46

MRTG安装

2011-03-02 10:41:41

Vsftpd安装

2011-04-01 15:00:35

2011-02-23 10:43:17

2009-07-17 17:00:13

在JRuby下将RoR

2010-11-11 09:06:38

Linux集群LVS

2009-09-17 16:50:23

WSUS服务器
点赞
收藏

51CTO技术栈公众号