2009-11-10 5 views
3

Je cours plusieurs webapps sur Jetty 6 par Apache. Ils sont configurés pour un déploiement à chaud à l'aide de fichiers .xml dans le répertoire contexts /. Ces fichiers .xml définissent simplement des instances WebAppContext et leur indiquent où rechercher un fichier WAR. Le fait de «toucher» leurs contextes/fichiers .xml ramène les modifications aux JSP définies dans le fichier WAR relavnt, ce qui est génial.Can Jetty peut-il détecter les modifications apportées à WEB-INF/lib lors du déploiement à chaud? Comment?

Le problème est que les modifications apportées aux fichiers JAR contenus dans le dossier WEB-INF/lib du fichier WAR ne sont pas détectées. Je suppose que c'est parce que ces fichiers JAR sont mis en cache quelque part. Cette hypothèse est basée sur le fait que le redémarrage de Jetty reprend les changements. La question est donc la suivante: est-il possible de désactiver ce comportement de mise en cache ou d'obtenir d'une autre manière des instances WebAppContext pour détecter les modifications de la bibliothèque? Si c'est le cas, comment?

Répondre

0

JBoss analyse de déploiement rapide ne vérifie pas le dossier lib:

http://community.jboss.org/wiki/HotDeployLibDirectory

Je ne sais pas si la jetée a le même comportement, mais, vous pouvez essayer de déplacer l'un de vos jars dans le même dossier que l'un de vos JSP pour voir si c'est le cas.

Si ce n'est pas une option, cela pourrait aider:

http://www.jroller.com/larrywilliams/entry/jetty_hot_deploy

+0

Je ne vais pas le tester, mais cela semble être une solution plausible. Une autre idée est d'amener les dépendances .jars à travers leurs sources plutôt que comme une unité construite. Quoi qu'il en soit, la peine d'avoir à redémarrer sur les changements de bibliothèque n'est pas énorme, ou ne devrait pas être; Si vous concevez votre webapp correctement, les changements de bibliothèque devraient être testables indépendamment de l'interface webapp et ne nécessitent donc pas de redémarrage du serveur ou de déploiement à chaud de toute façon. –

0

Vous devez définir la propriété scanInterval sur un nombre supérieur à zéro.

Voir plus here

+1

Oui la scanInterval par défaut du contexte/répertoire est déjà réglé sur 5. le déploiement à chaud fonctionne correctement en ce moment, mon problème est que seules les modifications Les fichiers JSP sont captés, pas les fichiers .jar, comme ceux de WEB-INF/lib. –

Questions connexes