Windows下JRuby on Rails搭建项目&使用Tomcat部署

 

因为使用的JRuby版本为1.7.9,版本较新,所以如果参考网上的部署教程会出现很多的问题,经过摸索找到了一种使用Tomcat来部署JROR的方法。

 

一.新建Jruby on Rails项目

1.首先下载JRuby,版本号1.7.9Windows下直接安装,安装完毕后执行

JRuby –v 如果显示版本号,说明安装正确。

 

2.安装Rails,执行命令JRuby –S gem install rails(或者Jgem install rails),默认是安装最新版的Rails,当前的Rails版本应该是大于4.0Rails安装完后执行

JRuby –S rails –v,如果显示版本号,说明安装正确。

 

3.对于准备使用JDBC来连接数据库的,需要安装额外的JDBCgem包。执行以下的命令 JRuby –S gem installactiverecord-jdbc-adapter

 

4.使用Rails来新建项目。Rails3.0以后新建项目的命令已经发生的变化,必须执行以下的命令JRuby –S rails new myAppmyApp为自己的项目名)。

 

5.Rails4.0以后与前面的目录结构有一些不同。具体可以参考http://guides.rubyonrails.org/getting_started.html

 

6.在项目的编码过程中,注意在引用其他文件的时候最好全部写成相对的路径的方式。例如require ‘example’应该改为 require File.expand_path(File.dirname(__FILE__)+’example.rb’)。如果不这样写,在部署到Tomcat后会发生找不到文件的错误。

 

7.测试项目是否搭建成功。执行命令JRuby –S rails server(或者JRuby –S rails s),打开浏览器http://localhost:3000,看是否能正常打开网页。

 

二.Tomcat部署Jruby on Rails

1.     下载Tomcat,网址http://tomcat.apache.org/。本次教程是基于Tomcat 7。下载完Tomcat后直接解压便可以使用。

 

2. 安装openssl。执行命令JRuby -S gem install jruby-openssl

 

3.   安装打包工具warbler。执行命令JRuby –S gem install warblerWarbler的功能是可以将JROR项目打包成一个J2EE项目中常见的war包。

 

4.   如果项目使用的JDBC连接数据库,进入项目目录下生成warbler的配置文件,执行命令 JRuby –S warble config。在config目录下会生成一个warble.rb文件,取消如下所示行的注释:

config.gems = ["activerecord-jdbc-adapter" ,  "jruby-openssl" ]  

 

5.在项目目录下生成打包war文件。进入项目目录执行命令JRuby -S warble war

 

6.生成的.war文件可以有两种方式部署

 

   方法一:直接将.war文件放到Tomcatwebapps目录下面,执行Tomcatbin目录下startup.bat启动Tomcat,项目访问路径为http://localhost:8080/myAppmyAppwar包的名字亦为项目的名字)

    注意:有可能出现jscss文件无法加载的情况,修改路由即可。

  

   方法二:解压war文件,可以发现打包的文件的目录结构与普通的J2EE项目极其相似,

因此可以知道warbler工具的原理就是将JRuby on Rails项目源文件按照J2EE项目的结构进行打包,并当做一个J2EE项目在Tomcat容器中加载。不同的是启动项目前都会启动JRubyJVM并且增加JRuby的侦听器,以便每次http请求到来时都可以调用JRuby来处理请求。过程如下:

       1.    可以将没有打包进war包的文件拷贝到/WEB-INF文件夹下,例如自己在Rails项目下新建了一个文件夹,此文件夹不是Rails自动生成的,所以并不会被打包进war文件当中,此时需要手动添加进去。

       2.    对于项目中的jscss及图片文件,可能会出现无法加载的情况,此时可以在项目目录新建javascriptsstylesheets两个文件夹,

 

      3.    Tomcat/conf/Catalina/localhost目录下新建myApp.xml文件,文件的内容如下:

        <?xml version='1.0'encoding='utf-8'?>

          <Contextprivileged="true" docBase="C:\RT_TOOL_ON_JRUBY">

        </Context>

 

**docBase war文件解压后的目录**

 

      4.    通过http://localhost:8080/myApp来访问

 

猜你喜欢

转载自blog.csdn.net/u010127879/article/details/21456733