Je suis nouveau Tomcat
. Nous avons une machine de développement avec environ 5 applications en cours d'exécution. Même s'il s'agit de développement, il est largement utilisé par nos clients pendant les tests.
Alors disons que nous devons faire un petit changement sur un fichier de classe. Pour le moment, nous devons arrêter Tomcat (affectant les quatre autres applications), supprimer le WAR
fichier (et le répertoire de l'application Web), redéployer le nouveau WAR
fichier et redémarrer Tomcat
.
Bien sûr, cela dérange quelques personnes car cela détruit toutes les sessions connectées pour toutes les applications.
Y a-t-il une meilleure manière de faire cela? Je veux dire, y a-t-il un moyen de ne recharger que la classe qui a changé au lieu de tout sur la machine de développement?
Merci.
la source
Réponses:
Avez-vous essayé d'utiliser l'application Tomcat's Manager ? Il vous permet d'annuler le déploiement / déployer des fichiers de guerre sans arrêter Tomcat.
Si vous ne souhaitez pas utiliser l'application Manager, vous pouvez également supprimer le fichier war du répertoire webapps, Tomcat annulera le déploiement de l'application après une courte période. Vous pouvez ensuite recopier un fichier war dans le répertoire et Tomcat déploiera le fichier war.
Si vous exécutez Tomcat sous Windows, vous devrez peut-être configurer votre contexte pour ne pas verrouiller divers fichiers.
Si vous ne pouvez absolument pas avoir de temps d'arrêt, vous pouvez consulter les déploiements parallèles de Tomcat 7. Vous pouvez déployer plusieurs versions d'une application Web avec le même chemin de contexte en même temps. Les règles utilisées pour faire correspondre les demandes à une version de contexte sont les suivantes:
la source
Il existe plusieurs moyens simples.
Touchez simplement web.xml de n'importe quelle application Web.
Vous pouvez également mettre à jour un fichier jar particulier dans WEB-INF / lib, puis toucher web.xml, plutôt que de créer un fichier war entier et de le déployer à nouveau.
Supprimez le répertoire webapps / YOUR_WEB_APP, Tomcat commencera à déployer war dans les 5 secondes (en supposant que votre fichier war existe toujours dans le dossier webapps).
En général, l'écrasement du fichier war avec une nouvelle version est redéployé automatiquement par tomcat. Sinon, vous pouvez toucher web.xml comme expliqué ci-dessus.
Copiez un «répertoire» déjà éclaté dans votre dossier Webapps
la source
$CATALINA_BASE/conf/context.xml
. Le WEB-INF / web.xml est surveillé pour les changements. D'autres ressources peuvent facilement y être répertoriées selon les besoins.Dans le répertoire conf d'apache tomcat, vous pouvez trouver le fichier context.xml. Dans cette balise d'édition comme < Context reloadable = "true" >. cela devrait résoudre le problème et vous n'avez pas besoin de redémarrer le serveur
la source