2010-04-07 5 views
0

J'ai lu le code source de la fauvette et je n'arrive pas à comprendre comment les pots jruby-jars et jruby-rack sont censés se retrouver sur le classpath de la servlet.Comment jruby-jars et jruby-rack doivent-ils être ajoutés au classpath en utilisant warbler?

Il semble que la fauvette les copie dans web-inf/gems/gems/<gemname>/lib/<jarname>.jar mais ils ne sont pas sur le chemin de classe.

Je suppose que si je les mets dans mon dossier rub/apps ruby ​​ils seraient copiés sur web-inf/lib et tout irait bien, cependant, il semble étrange d'avoir 2 copies du pot dans le dossier de guerre, est-ce que je suis censé faire?

Ben

Répondre

1

Ils doivent être copiés dans WEB-INF/lib/.jar. Le code de localisation des pots est ici:

http://github.com/nicksieger/warbler/blob/master/lib/warbler/config.rb#L216-220

Et le code qui les copie dans WEB-INF/lib est ici:

http://github.com/nicksieger/warbler/blob/master/lib/warbler/war.rb#L68-70

Si vous voyez autre chose, alors c'est un bug. En outre, vous ne devriez pas avoir à indiquer explicitement les dépendances sur les gems du fichier jar JRuby.

+0

Exactement! J'ai trouvé mon erreur, j'avais copié le fichier warble.rb d'un exemple pour le déploiement du GHS et la toute dernière ligne effaçait java_libs, donc pas de libs dans lib/:-) Merci pour votre aide! L'exemple cassé était ici http://gist.github.com/91801#file_warble.rb –

Questions connexes