Advanced Usage

Running Padrino on JRuby

You can run Padrino (0.9.29 ... 0.10.5 is tested) on JRuby 1.7.27

Install on JRuby

You can easily install Padrino on jruby when you use RVM:

$ rvm install jruby-1.7.27
$ rvm use --create jruby-1.7.27@padrino
$ gem install bundler
$ gem install padrino -v=0.10.5

Create Padrino project just as you do when using MRI or REE:

$ padrino g project jrack-test -e erb

cd ./jrack-test and you should edit Gemfile:

# JRuby deployment requirements
# please add these lines...
gem 'jruby-openssl'
gem 'jruby-rack'
gem 'warbler'

Now you can go:

$ bundle

Then, create the test controller:

$ padrino gen controller index get:index get:hello get:show_path

A controller sample is here:

# app/controllers/index.rb

JrackTest::App.controllers :index do
  get :index do
    "Hello, JPadrino!"

  get :hello, :map => '/:id' do
    "Hello, #{params[:id]}!"

  get :show_path, :map => '/show-path/*urls' do
    "You accessed: #{params[:urls].inspect}"

Then run:

$ padrino s

To run JRuby on 1.9 compat mode:

alias padrino='jruby --1.9 -S padrino'
padrino start

You can access http://localhost:3000 as you run padrino on MRI...

How to create WAR

Now you should install the warbler gem with $ gem install warbler, so you can:

$ warble config

Edit config/warble.rb if you want to apply some customizations. You can access JRuby-Rack official README and Warbler rdoc.

For example, if you want to deploy the app to server root directory, just add to config/warble.rb:

config.jar_name = "jrack-test"

Deploying with JRuby on 1.9 compat mode:

config.webxml.jruby.compat.version = "1.9"

If you are ready, run:

$ warble war

You would get jrack-test.war (the same name as your project directory name), and you can deploy this war file to tomcat! I tested on tomcat 6.0.20, and it works well with quick response.

last updated: 2022-02-22

comments powered by Disqus