最近安装了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.0.2.
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,要添加
if RUBY_PLATFORM =~ /java/
require 'rubygems'
RAILS_CONNECTION_ADAPTERS = %w(jdbc)
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文件,在以下的位置:
# config.gems = ["activerecord-jdbc-adapter", "jruby-openssl"]
# config.gems << "tzinfo"
# 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文件,添加以下内容
<context-param>
<param-name>jruby.session_store</param-name>
<param-value>db</param-value>
</context-param>
以上的修改也可以在模板文件jruby-1.1\lib\ruby\gems\1.8\gems\warbler-0.9.5\web.xml.erb中进行,这样就不用每次都要修改工程的web.xml文件了.现在一切正常了.
分享到:
相关推荐
- **敏捷开发实践**:通过具体案例展示如何利用JRuby on Rails进行敏捷开发,包括TDD(测试驱动开发)、持续集成等最佳实践。 - **高性能部署策略**:讨论如何针对高流量网站优化JRuby on Rails应用的性能,包括缓存...
5. **部署策略**:介绍使用JRuby部署Rails应用的最佳实践,可能涉及PaaS服务如Heroku,或者自建服务器如JRuby + Passenger。 6. **案例研究**:可能包含一些实际项目中使用JRuby on Rails的成功案例,以展示其在...
3. **部署灵活性**:JRuby on Rails 应用可以轻松地部署到任何支持 Java 的服务器上,如 Tomcat、Jetty 或者是大型企业级应用服务器,如 WebLogic 和 WebSphere。 4. **热部署**:JVM 的热部署特性允许开发者在不...
5. **部署策略**:介绍如何在生产环境中部署JRuby和Rails应用,包括使用Tomcat、Jetty等Java应用服务器,以及与持续集成工具如Jenkins的集成。 6. **案例研究**:提供实际的项目案例,展示如何在Java企业级环境中...
标题 "heroku-jruby-rails-4" 指向的是一个专为在 Heroku 平台上部署基于 JRuby 和 Rails 4 框架的应用程序而设计的种子项目。这个项目提供了一种快速启动和运行的方法,帮助开发者能够轻松地在 Heroku 上配置和部署...
JRuby 不仅实现了 Ruby 标准库,还支持 Ruby on Rails 框架,使得 Java 开发者能够利用 Ruby 的生产力特性。 2. JRuby 优势:JRuby 提供了与 Java 平台的深度集成,可以访问所有 Java 类库,同时还能利用 JVM 的多...
综上所述,Rails Magazine Issue 4不仅涵盖了Ruby on Rails框架本身的技术细节和发展趋势,还涉及到了与Ruby on Rails相关的多个领域,如内容管理系统、数据库操作、跨平台开发等,为读者提供了全面而深入的技术洞察...
在Ruby on Rails开发的世界里,将Web应用程序打包成可执行文件是一个常见的需求,尤其是在需要部署到没有Ruby环境的服务器或者希望提供用户一个独立运行的软件时。标题中的“终于知道怎么把rails Web程序打包成可...
3. JRuby 支持使用 JRuby-Rack 运行 Rails 应用,可以在 Java 应用服务器上部署 Ruby on Rails 项目。 4. JRuby 还可以作为 Java 代码调用 Ruby 代码的桥梁,通过 JRuby API 实现 Java 和 Ruby 之间的互操作。 关于...
标题 "Rails相关电子书汇总二" 提供的信息表明,这个压缩包主要包含与Ruby on Rails框架相关的电子书籍资源。Ruby on Rails(简称Rails)是一种基于Ruby语言的开源Web开发框架,它遵循MVC(模型-视图-控制器)架构...
- 可选地,你可以勾选`JRuby and Rails Distribution`以安装JRuby和Ruby on Rails框架。 - `Ruby Experimental Hints`提供额外的源代码提示,可以根据需要选择。 - 安装过程包括点击`Install`,接受许可协议,...
此外,Rails 2.2还增强了与JRuby的兼容性,这有助于提高在Java平台上的部署灵活性。 ##### 文档完善 长期以来,Ruby on Rails因缺乏足够的文档而受到了批评。在Rails 2.2中,开发团队投入了大量的精力来改善这一...
14. **部署策略:** 提供部署 Rails 应用的最佳实践建议。 15. **托管服务:** 介绍不同的应用和代码托管方案。 16. **技术工具:** 展示支持 Rails 开发的技术栈和辅助工具。 17. **开发者工具:** 推荐提高开发...
这有助于开发者构建混合式开发环境,充分利用Ruby on Rails的开发效率和Java的部署稳定性。 本书还涵盖了测试和持续集成的主题,讲解了如何使用RSpec、Cucumber等测试工具以及Jenkins等CI/CD工具,确保JRuby项目的...
开源的特性使得它成为开发者社区中的一个重要组成部分,为 Ruby on Rails 应用提供了更多选择和灵活性。对于那些寻求在 JVM 上运行高性能 Rails 应用的开发者来说,Rails-Asyncweb 是一个值得考虑的优秀解决方案。
此外,通过将Ruby on Rails部署到JRuby上,开发人员可以利用Java平台的强大性能优势来支持高流量的Web应用程序。 ### 开源与开放标准 Sun在2007年将Java标准版的源代码开放给了开源社区,并且在2008年进一步推动了...
GlassFish还集成了一系列先进技术,如Grizzly's Comet、jRuby on Rails和Metro等,同时提供友好的更新中心和控制界面。 ### GlassFish的企业级功能 对于企业用户,GlassFish提供了全面的功能,包括高性能的Web服务...
Ruby以其简洁、易读的语法和强大的元编程能力而闻名,被广泛用于Web开发,特别是与Ruby on Rails框架一起使用。JRuby的出现使得Ruby能够无缝地融入Java生态系统,促进了跨平台开发和企业级应用的可能性。 【压缩...