设为首页 收藏本站
查看: 303|回复: 0

[经验分享] 将RoR项目部署到Tomcat(转贴)

[复制链接]

尚未签到

发表于 2017-2-5 10:38:23 | 显示全部楼层 |阅读模式
  由于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)正是目前技术发展的一大趋势。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-337710-1-1.html 上篇帖子: Tomcat 5.0-5.5连接池配置指南 下篇帖子: 【转】Tomcat 的JVM 内存溢出问题的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表