Published by

Il y a 13 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 :

sorry_but_smtg_went_wrong

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

Published by

Publié par Aurélien Maury

Aurélien est passionné par les frameworks web haute productivité comme Grails, JRuby on Rails ou Play! framework. Il est également intéressé par tous les aspects de performance et d'optimisation (mais aussi par la phytothérapie, la PNL, la basse électrique, la philosophie et pleins d'autres sujets). Il est également formateur au sein de Xebia Training .

Commentaire

5 réponses pour " Où en est JRuby on Rails ? "

  1. Published by , Il y a 13 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

  2. Published by , Il y a 13 ans

    Je pense que mes propos ont été mal compris. Si j’ai marqué dans la conclusion que :

    « JRuby est aujourd’hui une plate-forme fiable et performante pour Ruby on Rails. »

    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.

  3. Published by , Il y a 13 ans

    Ok parfait

    Alors je complète en disant qu’en revanche ça se fait pas mal en JEE(5 ou plutôt 6)

  4. Published by , Il y a 13 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

  5. Published by , Il y a 13 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.