Il y a 14 ans -
Temps de lecture 7 minutes
Où en est JRuby on Rails ?
Le projet JRuby fournit aux développeurs une implémentation native Java du langage Ruby. Le but est d’interfacer sans douleur des classes Java et des scripts Ruby. La star du monde Ruby est bien entendu Ruby On Rails, le fameux framework réputé tellement productif qu’il suffit de penser le projet pour voir les lignes de code apparaître … Depuis quelques temps, on entend parler dans la blogosphère de JRuby on Rails. Nous allons tenter de voir si cette solution est mûre ou non pour les développements d’applications web.
Découverte
Pour les débutants sur JRuby, le Wiki officiel JRuby contient plein de ressources intéressantes. Dans la section JRuby on Rails, nous pouvons voir un alléchant lien intitulé « Deploying a Rails App in Tomcat with JRuby« , que je vous invite à suivre. Il est simple et permet d’appréhender en douceur le fonctionnement des applications Rails, entièrement avec JRuby.
En fin de tutoriel, nous sommes invités à visualiser l’url http://localhost:8080/phonebook/people
pour voir le résultat de notre micro-application, et à la place, on obtient ce superbe message :
Et dans les logs tomcat, on peut voir des insultes ressemblant à ceci :
[code]
GRAVE: unable to create shared application instance
org.jruby.rack.RackInitializationException: undefined method ‘new’ for « Rack::Lock »:String
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/actionpack-2.3.3/lib/action_controller/middleware_stack.rb:116:in ‘inject’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/actionpack-2.3.3/lib/action_controller/middleware_stack.rb:116:in ‘build’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:82:in ‘initialize’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:52:in ‘run_prepare_callbacks’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/rails-2.3.3/lib/initializer.rb:631:in ‘prepare_dispatcher’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/rails-2.3.3/lib/initializer.rb:185:in ‘process’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/gems/gems/rails-2.3.3/lib/initializer.rb:113:in ‘run’
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/config/environment.rb:9
from /home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/config/environment.rb:26:in ‘load’
from file:/home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/lib/jruby-rack-0.9.4.jar!/jruby/rack/rails.rb:26:in ‘load_environment’
from file:/home/amaury/JAVA/apache-tomcat-5.5.26/webapps/phonebook/WEB-INF/lib/jruby-rack-0.9.4.jar!/jruby/rack/rails.rb:151:in ‘new’
from
Commentaire
5 réponses pour " Où en est JRuby on Rails ? "
Published by Quentin ADAM , Il y a 14 ans
Je ne partage pas du tout ce point de vu :
– j’emploie jruby on rails pour des applications en production.
– la stack JEE (officiel Sun) tourne très bien avec.
– je fait tourner des applis 100% ruby dessus sans modification (que de la config) pour des perfs très très bonnes.
– J’ai intégré des libs ruby dans du JEE sans gros problème.
– intégration glassfish (v3) très bien réalisée
Published by Aurélien Maury , Il y a 14 ans
Je pense que mes propos ont été mal compris. Si j’ai marqué dans la conclusion que :
C’est bien parce que je suis d’accord avec vous. :)
Ce qui est plus difficile et que je met en avant ici, c’est de placer une application Rails par dessus une stack Spring. Certains ont tenté de le faire, mais ce n’est pas dans l’esprit de Rails et ça alourdit le code Ruby inutilement. Ce n’est à mon avis pas la bonne voie.
En revanche, faire tourner des applications 100% Rails sur JRuby ne pose aucun problème et est même relativement répandu aujourd’hui. J’espère vous avoir apporter un peu de clarté sur mon point de vue.
Published by Quentin ADAM , Il y a 14 ans
Ok parfait
Alors je complète en disant qu’en revanche ça se fait pas mal en JEE(5 ou plutôt 6)
Published by Nick Sieger , Il y a 14 ans
Aurélien,
Je m’excuse pour mes pauvres français écrit…
Warbler 0.9.14 est nouveau, alors vous ne trouverais plus l’erreur.
S’il vous plait, contactez-moi si vous avez de plus idées pour intégrer Sprint et JRuby. Si vous pensez d’une example de quel vous voulez faire, je veux l’essayer.
Salutations,
/Nick
Published by Aurélien Maury , Il y a 14 ans
Effectivement, la mise à jour de Warbler est tombée pendant le bouclage de cet article. Le problème décrit est maintenant résolu dans la dernière version stable.
Thank you for this update Nick.