由于Ruby的开发者社区不断增长,其影响力越来越大,主流的开发平台Java和.Net都向它抛出了橄榄枝。Sun支持了运行于JVM的JRuby,而微软也支持了Iron Ruby项目。敏捷咨询公司ThoughtWorks已经发布了基于JRuby一个敏捷项目管理工具Mingle,使JRuby成为了最近社区关注的焦点。
开发一个JRuby项目对于大多数正在观望Ruby和Rails技术的Java开发者来说是一个非常有吸引力的事情,因为这样可以用平常所熟悉的环境去学习或者开发Ruby on Rails项目。在JRuby项目的主要开发者加入Sun的时候,Java社区JavaEye(使用Rails开发)的站长robbin曾经这样评价Java和Ruby的联姻:
单纯从web项目的开发效率上衡量,Java已经无法和ruby on rails相提并论,但有趣的是Java并非完全站在ruby on rails的竞争对立面。由于Ruby的第三方库远远无法和Java相提并论,ruby其运行效率也无法和成熟的JVM相比,而我们知道,JVM从理论上来说,也并非可以仅仅支持Java一种语言。因而将ruby移植到JVM上面来,结合ruby的开发效率优势和Java丰富类库支持,强大Java运行平台优势就是顺理成章的事情了,JRuby正是实现这一目标的框架。而Sun对于JRuby提供的强力支持,更加表达了Java与ruby携手的决心。
在Mingle成功发布以后,JRuby的技术和产品都已经更接近开发者了。但是,实际上大部分的Java和Ruby社区的开发者都还没有实际使用JRuby开发,因为这个混合技术似乎还处于神秘状态,只有少数核心开发者知道如何使用它。最近在Digital Sanctum的blog上发布了一系列和JRuby相关的文章,根据里面的指导我们可以尝试将Ruby on Rails项目部署在Tomcat上,这个过程可以让我们揭下JRuby的神秘面纱,下面我们看看这个过程。
首先,我们回顾一下我为什么要安装JRuby?也就是JRuby能够给原有的开发方式带来哪些好处。
- 可以同时使用Java和Ruby的类库(gems)
- 使用现有的Java平台部署Ruby或Ruby on Rails应用程序
- 用Ruby调用或者扩展Java类的能力(包括Spring-managed Java Beans)
- 可以使用Ruby以不啰嗦且更有趣的方式写代码。
在准备好实验JRuby后,首先需要安装JRuby环境,这个过程比较简单,请参考Digital Sanctum的这篇JRuby安装指南。
然后,如果您想在JRuby上面从头开发Rails应用,可以按照Digital Sanctum描述的在JRuby下创建rails项目并部署到tomcat的流程学习。
但是,如果您手头已经有了一个RoR的项目,则您可以关注其中关键的两步:
第一步是要安装ActiveRecord-JDBC,使用这个命令:
gem install ActiveRecord-JDBC
安装ActiveRecord-JDBC后,需要修改database.yml,修改其中的适配器为“jdbc”并指定相应的Driver和URL。然后继续修改config/enviroment.rb中的将连接适配器配置。
if RUBY_PLATFORM =~ /java/
require 'rubygems'
RAILS_CONNECTION_ADAPTERS = %w(jdbc)
end
您还需要将mysql-connector JDBC驱动的jar文件拷贝到/lib和/common/lib下面。
第二步,是部署到Tomcat上的最重要的一部,打包。您需要安装一个Rails插件goldspike:
jruby script/plugin install svn://rubyforge.org/var/svn/jruby-extras/trunk/rails-integration/plugins/goldspike
然后您只需要在您的应用程序的根目录执行一个rake任务就可以生成war包了。
rake war:standalone:create
最后将生成的war包拷贝到您的/webapps目录并启动tomcat就可以看到您的RoR应用了。
这里只摘要了将RoR项目部署在Tomcat的关键流程,很多细节这里没有引用,如果感兴趣您可以参考原文。
因为RoR是Ruby的杀手应用,而Tomcat是Java平台最著名的开源Servlet容器,两者的强强结合其实预示了Ruby在传统平台(Java及.NET)继续爆发的潜力。它允许您开发混合平台,发挥语言和平台各自的特长,混合或者融合(mush up)正是目前技术发展的一大趋势。
分享到:
相关推荐
首先,RoR性能优化涉及到多个层面,包括应用程序的部署、服务器配置以及代码优化。在部署方面,操作系统的选择至关重要。RoR通常在Unix类操作系统上运行最佳,如RHEL、CentOS、Ubuntu和SuSE Linux。对于AMD Opteron ...
接着,将你的ROR项目导入到Eclipse中。右键点击项目导航器,选择"Import",在"General"类别下选择"Existing Projects into Workspace",浏览并选择你的ROR项目目录,然后点击"Finish"。 在Eclipse中,你可以利用其...
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
学习RoR中文资料,应首先从Ruby语言入手,掌握其基本语法和面向对象特性,然后深入理解Rails框架的核心概念和工作原理,通过实践项目来巩固知识。同时,不断关注社区动态,了解最新的Gem和最佳实践,以便不断提升...
**神经网络Ror ResNet模型详解** 在深度学习领域,ResNet(残差网络)模型是具有里程碑意义的创新,由He et al.在2015年提出。该模型解决了深度神经网络训练中的梯度消失问题,允许构建非常深的网络结构。而“Ror”...
1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目依赖的gem库,Gemfile.lock则记录了具体版本,确保团队成员或部署环境具有相同的依赖。 2. **ActiveRecord**:这是Rails中的ORM(对象关系映射),它...
它还负责将URL映射到控制器方法,是构建Web应用程序的基石。 接着,`activerecord`是Rails中的ORM(对象关系映射)库,使得开发者可以使用Ruby语言操作数据库。`activerecord-1.15.5.gem`包含了与数据库交互所需的...
1. **路由(Routing)**:RoR的路由系统将URL映射到控制器的行动上,通过`config/routes.rb`文件进行配置。理解路由规则有助于构建可扩展和灵活的Web应用。 2. **控制器(Controllers)**:控制器负责处理请求,...
**初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进...通过学习和实践,你将能够利用ROR构建出功能强大、易于维护的Web应用程序。
9. **部署与测试**:最后,学习如何将项目部署到服务器,如Heroku或AWS,并使用RSpec、Capybara等工具进行单元测试和集成测试,确保系统的稳定性和可靠性。 通过学习和实践《机遇ROR的图书管理系统》,你不仅能掌握...
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
1. **文件上传**:`UploadController`中的`create`方法接收上传的文件,并调用`SaveFile`模型的`save`方法将文件数据存储到数据库中。`SaveFile`模型的`save`方法读取文件的二进制流,并将其连同文件名一起保存到...
**RoR-Newsroom: 熨斗的Ruby on Rails项目** RoR Newsroom是一个基于Ruby on Rails(RoR)的Content Management System (CMS),专为实现特定的发布工作流程而设计。RoR,全称Ruby on Rails,是Ruby编程语言的一个...
随着Web开发技术的不断发展,Ruby on Rails(简称Rails或ROR)作为一种高效、简洁且优雅的Web开发框架,受到了广大开发者的青睐。然而,在Windows环境下搭建Rails开发环境却让不少初学者感到头疼。本文将详细介绍...
通过这五天的培训课程,学员将能够熟练掌握RoR的基本开发技能,并具备独立构建完整Web应用的能力。RoR以其简洁优雅的语法和强大的生态系统,在Web开发领域占有举足轻重的地位。希望每位学员都能从中受益匪浅,成为...
这个过程涉及到将现有的ASP.NET应用程序的数据模型、数据库结构以及业务逻辑迁移到ROR框架中。在这个过程中,我们需要理解两个不同框架之间的核心差异,并找到合适的工具和技术来实现平滑过渡。 首先,让我们深入...
ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...
破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar
**FreeMIS:基于Ruby on Rails框架的企业管理系统** FreeMIS是一个基于Ruby on Rails(RoR)框架构建的管理信息系统(MIS...无论你是初学者还是经验丰富的开发者,都可以从中学习到关于Web应用开发的宝贵经验和技巧。