Getting Rails 4.0.0.rc1 running on JRuby isn't that different from running it on MRI, but there are a few minor things you'll need to adjust. Let's start with a new Rails4 app. Make sure you're using JRuby and install the Rails4 release candidate like this:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ruby -v | |
jruby 1.7.4.dev (1.9.3p392) 2013-05-01 fffffff on Java HotSpot(TM) 64-Bit Server VM 1.7.0_09-b05 [darwin-x86_64] | |
$ gem install rails -v 4.0.0.rc1 | |
Successfully installed rails-4.0.0.rc1 | |
1 gem installed |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ rails new my_app | |
... | |
Your bundle is complete! | |
Use `bundle show [gemname]` to see where a bundled gem is installed. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Use jdbcsqlite3 as the database for Active Record | |
gem 'activerecord-jdbcsqlite3-adapter' | |
gem 'jruby-openssl' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Use jdbcsqlite3 as the database for Active Record | |
gem 'activerecord-jdbcsqlite3-adapter', '1.3.0.beta1' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ bundle update | |
... | |
Your bundle is updated! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ bundle exec rake db:create |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ bundle exec rails server | |
=> Booting WEBrick | |
=> Rails 4.0.0.rc1 application starting in development on http://0.0.0.0:3000 | |
=> Run `rails server -h` for more startup options | |
=> Ctrl-C to shutdown server | |
[2013-05-11 09:25:05] INFO WEBrick 1.3.1 | |
[2013-05-11 09:25:05] INFO ruby 1.9.3 (2013-05-01) [java] | |
[2013-05-11 09:25:05] INFO WEBrick::HTTPServer#start: pid=3146 port=3000 |
OpenSSL::Cipher::CipherError: Illegal key size: possibly you need to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for your JRE
If you see this error it means you need to install the unrestricted policy files for the JVM. You can find these at the Oracle Website. Download the zip file, and extract the two important files it contains: local_policy.jar and US_export_policy.jar. Move these files into your $JAVA_HOME/jre/lib/security directory, and replace the existing files of the same name. On Mac OS X they are probably located here:
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/
With the unrestricted policy files installed, restart the server and you'll be good to go. But this may present a problem in deployment. For example, you won't be able to update the JVM on a Heroku dyno. Another option may be to downgrade cryptography as described in this JIRA issue, but I haven't tried that. Hopefully this will all get worked out.
And of course, you probably won't want to use WEBrick in production. Warbler 1.3.8 may work for you, but try the rails4 branch if it doesn't. I have an example of a working Rails4 app on BitBucket in my warbler-examples repo.
I haven't attempted to run a Rails4 app on Trinidad, Puma or TorqueBox. I would love to hear your results.
Please give this a go, and report back with any problems you find. We would love to have Rails4 working on JRuby the day it's released.
Thanks for this, we have a large Rails 3.1 app running on Jruby 1.6.7, we'll give 4.0.0rc1 a spin w/ Jruby 1.7.3
ReplyDeleteThanks for this, but the illegal key size error is a big deal for anyone that doesn't have the ability to add that .jar file to their production environment, plus it's an external dependencies that is bound to be missed about when migrating or updating a server.
ReplyDeleteDo you have any idea how to actually lower the key size to 128 bits instead of 256? It's not clear how to do that for a rails app from the JIRA ticket.
Yes Simon, that's very true. I haven't tried it yet myself. I would be very curious to hear if and how others got it working with the smaller key size.
ReplyDeleteI replaced JCE jars as suggested,
ReplyDeleteI'm seeing the following when using fog that depends on excon
#
problem creating X509 Aux certificate: java.io.IOException: problem parsing cert: java.security.cert.CertificateParsingException: java.io.IOException: Duplicate extensions not allowed (OpenSSL::SSL::SSLError)
Excon::Errors::SocketError: problem creating X509 Aux certificate: java.io.IOException: problem parsing cert: java.security.cert.CertificateParsingException: java.io.IOException: Duplicate extensions not allowed (OpenSSL::SSL::SSLError)
from org/jruby/ext/openssl/SSLContext.java:230:in `setup'
from org/jruby/ext/openssl/SSLSocket.java:145:in `initialize'
from /Users/mike/.rvm/gems/jruby-1.7.4/gems/excon-0.25.3/lib/excon/ssl_socket.rb:64:in `initialize'
from /Users/mike/.rvm/gems/jruby-1.7.4/gems/excon-0.25.3/lib/excon/connection.rb:361:in `socket'
from /Users/mike/.rvm/gems/jruby-1.7.4/gems/excon-0.25.3/lib/excon/connection.rb:105:in `request_call'
from /Users/mike/.rvm/gems/jruby-1.7.4/gems/excon-0.25.3/lib/excon/middlewares/mock.rb:42:in `request_call'
Hi,
ReplyDeleteI already have Ruby on rails app with me.Now I wanna integrate this with JRuby in order to get asynchronous feature.How do I proceed.
Any help would be greatly appreciated,thank you very much.
Ruby On Rails Online Training, ONLINE TRAINING – IT SUPPORT – CORPORATE TRAINING http://www.21cssindia.com/courses/ruby-on-rails-online-training-142.html The 21st Century Software Solutions of India offers one of the Largest conglomerations of Software Training, IT Support, Corporate Training institute in India - +919000444287 - +917386622889 - Visakhapatnam,Hyderabad Ruby On Rails Online Training, Ruby On Rails Training, Ruby On Rails, Ruby On Rails Online Training| Ruby On Rails Training| Ruby On Rails| "Courses at 21st Century Software Solutions
ReplyDeleteTalend Online Training -Hyperion Online Training - IBM Unica Online Training - Siteminder Online Training - SharePoint Online Training - Informatica Online Training - SalesForce Online Training - Many more… | Call Us +917386622889 - +919000444287 - contact@21cssindia.com
Visit: http://www.21cssindia.com/courses.html"
Thanks for this - really helped me out on a Windows installation I don't typically work with!
ReplyDeleteAnother solution for
ReplyDeleteOpenSSL::Cipher::CipherError: Illegal key size is to add the following lines in your boot.rb file:
security_class = java.lang.Class.for_name('javax.crypto.JceSecurity')
restricted_field = security_class.get_declared_field('isRestricted')
restricted_field.accessible = true
restricted_field.set nil, false
Thanks Joe for sharing such a nice information with us. Cryptex technologies is one of the well-known Ruby on Rails development companies in India. If you have any queries feel free to email at: info@cryptextechnologies.com
ReplyDeleteThis listing is certainly very beneficial.This is the right weblog. it's far very interesting weblog Ever. Thanks for giving one of these brilliant article... for another information please check the site
ReplyDeleteNice blog very useful information I will visit again to read more your post
ReplyDeleteruby on rails online training India
khwaja garib nawaz urus mubarak
ReplyDeletekhwaja garib nawazchatti
syed baba tajuddin
ya syed ahmed jilani
labbaik ya rasool allah hu