NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

将 RoR 项目部署到 Tomcat

  • 2007-08-22
  • 本文字数:1598 字

    阅读完需:约 5 分钟

由于 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 能够给原有的开发方式带来哪些好处。

  1. 可以同时使用 Java 和 Ruby 的类库(gems)
  2. 使用现有的 Java 平台部署 Ruby 或 Ruby on Rails 应用程序
  3. 用 Ruby 调用或者扩展 Java 类的能力(包括 Spring-managed Java Beans)
  4. 可以使用 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)正是目前技术发展的一大趋势。

2007-08-22 10:261671

评论

发布
暂无评论
发现更多内容

如何在Linux (CentOS7.3) 下安装JDK1.8?【一篇文章教会你】

Bug终结者

java; Linux Kenel 8月月更

《中国综合算力指数》《中国算力白皮书》《中国存力白皮书》《中国运力白皮书》在首届算力大会上重磅发出

蓝海大脑GPU

兆骑科创创新创业大赛活动举办,线上直播路演,投融资对接

兆骑科创凤阁

大数据开发,Hadoop Spark太重?你试试esProc SPL

华为云开发者联盟

大数据 开源 后端

使用python获取浏览器收藏夹和历史浏览记录,然后可以...

技能实验室

签约计划第三季

重构指标之如何监控代码圈复杂度

京东科技开发者

测试 重构 软件重构 分布式应用软件

5种kafka消费端性能优化方法

华为云开发者联盟

大数据 kafka 后端 MRS

信创是什么意思?涉及哪些行业?为什么要发展信创?

行云管家

信息安全 信创

并发程序的隐藏杀手——假共享(False Sharing)

了不起的程序猿

编程 高并发 java程序员

Vue3 初探

怀府风

IDC:阿里云稳居中国大数据平台公有云市场第一位

阿里云大数据AI技术

阿里云

百度APP Android包体积优化实践(三)资源优化

百度Geek说

Andriod

深入聊聊Linux五种IO模型

C++后台开发

epoll 网络模型 I/O模型 C/C++后台开发 C/C++开发

中大型商业银行堡垒机升级改造就用行云管家!必看!

行云管家

信息安全 银行 堡垒机 IT安全

开发者独立搭建一个跨模态搜索应用有多难?

Jina AI

深度学习 云原生 神经搜索 跨模态应用 多模态数据

基于 Next.js实现在线Excel

葡萄城技术团队

前端 在线excel nextjs 表格 控件

快速打造安全的车联网平台

Geek_99967b

小程序

《分布式云最佳实践》分论坛,8月11日深圳见

阿里云弹性计算

分布式云 飞天 数字化升级 一云多形态

直播系统开发——直播间架构的设计及难点分析

开源直播系统源码

软件开发 语聊房 语音聊天源码 直播系统开发

从-99打造Sentinel高可用集群限流中间件

艾小仙

Java 高可用 sentinel 集群限流

Pisanix v0.2.0 发布|新增动态读写分离支持

SphereEx

数据库 开源 ShardingSphere SphereEx

如何通过使用“缓存”相关技术,解决“高并发”的业务场景案例?

冉然学Java

高并发 java; 单线程 redis'

Spring之JDK动态代理与CGLIB动态代理

echoes

2022年7月国产数据库大事记-墨天轮

墨天轮

数据库 腾讯云 GaussDB 国产数据库 KingBase

HTTP和HTTPS的区别

开发微hkkf5566

SAP ABAP SteamPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克

Jerry Wang

云原生 Cloud 云平台 SAP 8月月更

《2022 年上半年全球独角兽企业发展研究报告》发布——DEMO WORLD世界创新峰会圆满落幕

创业邦

攻防视角下,初创企业安全实战经验分享

声网

网络安全

Mybatis中#{}和${}的区别

开发微hkkf5566

化繁为简,聊一聊复制状态机系统架构抽象

阿里技术

数据库 架构

如何防止重复下单?

三分恶

8月月更

将RoR项目部署到Tomcat_Java_田乐_InfoQ精选文章