2010-10-10 5 views
3

J'ai eu du mal à obtenir jRuby sur Rails 3 déployé sur Tomcat 6. Je l'ai eu à travailler exactement une fois.jRuby et des problèmes avec Warbler, RVM et Tomcat

Je modifié mon database.yaml et Gemfile pour vérifier JRuby, quelque chose comme ceci:

if defined?(JRUBY_VERSION) 
    gem 'jdbc-mysql' 
    #gem 'jdbc-sqlite3' 
    gem 'activerecord-jdbc-adapter' 
    gem 'activerecord-jdbcmysql-adapter' 
    #gem 'activerecord-jdbcsqlite3-adapter' 
    gem 'jruby-openssl' 
    gem 'jruby-rack' 
    gem 'warbler' 
else 
    gem 'mysql' 
    gem "mongrel" 
    gem 'ruby-debug' 
end 

Certains paramètres d'environnement:

$ rvm -v 
rvm 1.0.14 

$ jruby -v 
jruby 1.5.3 (ruby 1.8.7 patchlevel 249) (2010-09-28 7ca06d7) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20) [x86_64-java] 

Quand je lance jruby -S bundle install tout se passe bien.

C'est quand j'essaye de faire quelque chose comme rake db:migrate, jruby -S rake db:migrate ou warble que j'obtiens 50 AVERTISSEMENTS DE DÉPRÉCIATION et un eventuel stackoverflow.

J'ai résolu ce problème en supprimant le plugin fauvette, il n'a pas aimé la ligne Warbler::Task.new

Ensuite, je courais warble config pour me donner un fichier config/warbler.rb. Ensuite, warble pour créer mon fichier .war. Jusqu'ici tout va bien.

Maintenant, je déplace le fichier .war vers mes webapps Tomcat. Tout fonctionne bien sauf erreur:

Oct 10, 2010 1:34:46 AM org.apache.catalina.core.ApplicationContext log 
SEVERE: Application Error 

org.jruby.rack.RackInitializationException: 
http://github.com/plataformatec/devise.git (at master) is not checked out. 
Please run 'bundle install' 

J'ai résolu ce problème une fois et une seule fois en allant dans mon webapps/myapp/WEB-INF et en cours d'exécution jruby -S bundle install

Il ne fonctionne plus et je ne sais pas que se passe-t-il.

Répondre

2

Je crois que cela peut être appelé un bug dans la version actuelle de Warbler. L'utilisation de dépôts git dans votre Gemfile n'est pas correctement mise en scène dans le fichier war et Bundler est toujours à la recherche d'un référentiel extrait sur le disque.

Une future version de Warbler fera probablement quelque chose sur le modèle de bundle --deployment lorsque vous créez le fichier war.

Pour l'instant, pour contourner le problème, vous devrez peut-être vendre le code d'équipement.

+0

Mais j'ai aussi dû enlever mon fichier warble.rb pour une raison quelconque. – Dex

0

La version actuelle de Warbler (1.3.6) affichera également ce comportement si vous générez un fichier war avec warbler war. J'ai trouvé que la construction avec la commande suivante fonctionne:

warbler compiled war 

Espérons que les futures versions aborderont cela plus complètement. L'élimination des directives: git a permis de résoudre les problèmes.