1. 程式人生 > >Windows下JRuby on Rails搭建專案&使用Tomcat部署

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來訪問