参考web页面:
http://edgibbs.com/2007/05/25/deploying-rails-to-tomcat-as-a-war-with-jruby/
http://www.infoq.com/cn/news/2007/08/deploying_rails_on_tomcat?
开发环境:Netbeans6.0 Beta 2,MySQL5.0,Tomcat6.0.13
1、设置好JRUBY_HOME和Path路径,将Mysql_connector.jar放到%JRUBY_HOME%\lib下和%Tomcat_HOME%\lib下(tomcat5系列是%Tomcat_HOME%\common\lib)
2、命令行:jruby gem install activerecord-jdbc --no-rdoc --no-ri,将看到类似文字
Installing ri documentation for ActiveRecord-JDBC-0.3.1...
Installing RDoc documentation for ActiveRecord-JDBC-0.3.1...
Successfully installed ActiveRecord-JDBC-0.3.1gem install ActiveRecord-JDBC
3、新建项目WarApp,并选上"Access Database using jdbc"和"Add rake targets to support APP Server Deployment(.war)"
(1)config\enviorment.rb文件里面加了下列代码,
if RUBY_PLATFORM =~ /java/
require 'rubygems'
gem 'ActiveRecord-JDBC'
require 'jdbc_adapter'
end
(2)vendor\plugins目录下多了goldspike插件
4、新建数据库warapp,设置database.yml
development:
adapter: jdbc
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/warapp<your_production_database></your_production_database>
username: root<user_name></user_name>
password: zyb
5、生成模型Book和数据表books,生成scafford
(1)generate model Book
(2)修改 db\001_create_books.rb
def self.up<hostname></hostname>我将WarApp.war放到%Tomcat_HOME%\webapps\下,运行Tomcat (startup.bat),http://localhost:8080/WarApp 可以看到
ruby on rails 的默认欢迎页面,但输入http://localhost:8080/WarApp/books/list 时报错了,加载rails错误。错误信息如下,
望高手补充。
javax.servlet.ServletException: Could not load Rails. See the logs for more details.
org.jruby.webapp.RailsFactory.makeObject(RailsFactory.java:131)
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840)
org.jruby.webapp.AbstractRailsServlet.serviceRequest(AbstractRailsServlet.java:144)
org.jruby.webapp.AbstractRailsServlet.service(AbstractRailsServlet.java:131)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jruby.webapp.FileServlet.doGet(FileServlet.java:102)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
create_table :books do |table|
table.column :title, :string
table.column :author, :string
end
end
(3)在项目名WarApp右键“migrate database=>to current version”
(4)generate scafford Book
运行项目,
http://localhost:3000/books/ 将看到我们熟悉的页面
6、在项目名上右键“run rake task=>war:standalone:create”相当于命令“rake war:standalone:create”生成.war(使用rake war:standalone:create会增加所有需要的gems,而使用rake war:shared:create会需要调用不会加载rails相关的gems),控制台输出下来描述表示成功,第一次可能需要好几分钟,以后就快了。中间也可能失败,多试几次。
Assembling web application
Adding Java library commons-pool-1.3
Adding Java library activation-1.1
Adding Java library jruby-complete-0.9.9
Adding Java library bcprov-jdk14-124
Adding Java library rails-integration-1.1.1
Adding web application
Adding Ruby gem rails version 1.2.3
Adding Ruby gem rake version 0.7.3
Adding Ruby gem activesupport version 1.4.2
Adding Ruby gem activerecord version 1.15.3
Adding Ruby gem actionpack version 1.13.3
Adding Ruby gem actionmailer version 1.3.3
Adding Ruby gem actionwebservice version 1.2.3
Adding Ruby gem ActiveRecord-JDBC version 0.3.1
Creating web archive
到此项目下产生了war文件WarApp.war
将war放到%TOMCAT_HOME%\webapps下,运行Tomcat
http://localhost:8080/WarApp/ 可以看到ruby on rails的欢迎页面,不过http://localhost:8080/WarApp/books/list 时报错,加载不到rails。错误信息如下,望:
javax.servlet.ServletException: Could not load Rails. See the logs for more details.
org.jruby.webapp.RailsFactory.makeObject(RailsFactory.java:131)
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840)
org.jruby.webapp.AbstractRailsServlet.serviceRequest(AbstractRailsServlet.java:144)
org.jruby.webapp.AbstractRailsServlet.service(AbstractRailsServlet.java:131)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jruby.webapp.FileServlet.doGet(FileServlet.java:102)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
分享到:
相关推荐
3. **部署灵活性**:JRuby on Rails 应用可以轻松地部署到任何支持 Java 的服务器上,如 Tomcat、Jetty 或者是大型企业级应用服务器,如 WebLogic 和 WebSphere。 4. **热部署**:JVM 的热部署特性允许开发者在不...
5. **部署策略**:介绍如何在生产环境中部署JRuby和Rails应用,包括使用Tomcat、Jetty等Java应用服务器,以及与持续集成工具如Jenkins的集成。 6. **案例研究**:提供实际的项目案例,展示如何在Java企业级环境中...
通过JRuby on Rails,Java开发者可以使用Ruby的简洁语法和Rails的高效开发模式,同时享受Java的成熟技术栈和企业级支持。本书通过一系列实践项目,展示了如何将Rails应用与Java企业应用环境整合,包括如何利用Java ...
1. **JRuby与Rails的兼容性**:讲解JRuby如何与Rails框架完美融合,使得开发者可以使用Ruby on Rails的所有功能,同时享受到Java平台的稳定性和性能。 2. **性能优化**:由于JRuby运行在JVM上,因此可能讨论了如何...
在Ruby on Rails开发的世界里,将Web应用程序打包成可执行文件是一个常见的需求,尤其是在需要部署到没有Ruby环境的服务器或者希望提供用户一个独立运行的软件时。标题中的“终于知道怎么把rails Web程序打包成可...
1. WAR 包:JRuby 应用可以被打包成 WAR 文件,部署在任何支持 Java Web 应用服务器上,如 Tomcat、Jetty 等。 2. Gradle 或 Maven 集成:开发过程中,JRuby 可以通过 Gradle 或 Maven 作为依赖管理工具进行集成。 ...
5. **部署策略**:介绍使用JRuby部署Rails应用的最佳实践,可能涉及PaaS服务如Heroku,或者自建服务器如JRuby + Passenger。 6. **案例研究**:可能包含一些实际项目中使用JRuby on Rails的成功案例,以展示其在...
### JRuby on Rails Web 2.0 Projects:将Ruby on Rails引入Java平台 #### JRuby简介 JRuby是一种Ruby语言的实现,它运行在Java平台上,利用了Java虚拟机(JVM)的强大功能。JRuby使得开发人员能够在Java环境中使用...
《JRuby on Rails Web 2.0 实用项目》 英文PDF + 源码
在本文中,作者将Rails升级到2.2.2,并安装了Warbler插件,该插件有助于将项目部署到Tomcat服务器。然而,升级Rails时可能会遇到错误,提示RubyGems版本不足。解决此问题的方法是通过JRuby执行`gem update --system`...
2. 运行 `jruby -v` 命令检查安装是否成功,如果显示版本号,则表明已成功安装。 3. 使用 JRuby 的 `irb` (交互式 Ruby shell) 或者运行 Ruby 脚本,如 `jruby your_script.rb`。 **4. JRuby 与 Java 交互** JRuby...
Netbeans 6.0 JRuby on Rails demo
JRuby Redmine部署完全独立,可以通过JEE Apache-Tomcat WAR中的插件和主题进行自定义和不自定义。 Redmjne发行版有望与所有必要的运行时元素的最新稳定发行版保持同步;最新版本为2。 自2015年3月起,请参阅部门...
3. **配置环境变量**:安装完成后,可能需要将JRuby的bin目录添加到系统PATH环境变量中,这样可以在命令行中直接使用JRuby命令。 4. **验证安装**:打开命令提示符,输入`jruby -v`,如果显示出JRuby的版本信息,...
jruby-1.3.1.jar包 解决org.jruby.exceptions.JumpException 等报错
标题“用JRuby读取Excel文件”涉及到的主要技术点是JRuby和处理Excel文件,这里我们将深入探讨这两个关键概念。 JRuby是Java平台上的一个Ruby实现,它允许开发者使用Ruby语言编写程序,同时利用Java的类库和运行...
"war" 文件是 Web 应用的归档格式,通常用于部署在像 Apache Tomcat 这样的 Java 应用服务器上。"war" 文件包含所有必要的资源,如 HTML、CSS、JavaScript、Java 类和其他支持文件,以便于服务器运行和分发 Web 应用...