close
所需軟體
安裝Ruby
- 下載Ruby
- 解壓縮至ruby目錄
- 切換工作目錄至ruby/bin
- 安裝Rails
gem i rails -y --no-ri --no-rdoc
- 安裝JDBC adapter
gem i activerecord-jdbc -y --no-ri --no-rdoc
安裝JRuby
- 下載JRuby
- 解壓縮至jruby目錄
- 設定環鏡變數JRUBY_HOME,指向jruby目錄
- 將jruby/bin目錄加入PATH
- 安裝Rails
gem i rails -y --no-ri --no-rdoc
- 安裝JDBC adapter
gem i activerecord-jdbc -y --no-ri --no-rdoc
- 將ruby/bin/rails.cmd複製到jruby/bin目錄
- 將ruby/bin/rake.bat複製到jruby/bin目錄
- 編輯jruby/bin/rake.bat,將ruby執行檔路徑改成完整路徑,指向ruby/bin/ruby
建立rails專案
- 執行rails demo,建立測試專案
- 切換工作目錄至demo
- 安裝整合plugin
jruby script/plugin install svn://rubyforge.org/var/svn/jruby-extras/trunk/rails-integration/plugins/war
- 啟動伺服器
jruby script/server
- 用瀏覽器開啟http://localhost:3000/
啟動Jetty 6
- 下載Jetty 6
- 取出壓縮檔裡,lib目錄中的三個jar檔:jetty-*.jar、jetty-util-*.jar、servlet-api-*.jar
- 將上述三個jar檔加入CLASSPATH
- 切換工作目錄至rails專案
- 建立demo.war檔
rake war:shared:create
- 刪除war檔中的WEB-INF\lib\jruby-complete-*.jar,因為會和jruby本身打架
- 將文末的程式碼存成server.rb
- 啟動伺服器
jruby server.rb
- 用瀏覽器開啟http://localhost:3000/
將war檔佈署至一般的web container,不使用server.rb啟動時,不需刪除war檔中的WEB-INF\lib\jruby-complete-*.jar。開發 時,可以將war檔中的WEB-INF目錄放到rails專案目錄中,再將server.rb中的
WebAppContext.new(contexts, "demo.war", "/")
改成
WebAppContext.new(contexts, ".", "/")
如此,不用建立war檔也能測試。
server.rb
require 'java' include_class 'org.mortbay.jetty.Server' include_class 'org.mortbay.jetty.handler.ContextHandlerCollection' include_class 'org.mortbay.jetty.webapp.WebAppContext' server = Server.new(3000) contexts = ContextHandlerCollection.new WebAppContext.new(contexts, "demo.war", "/") server.setHandler(contexts) server.start server.join
全站熱搜