Je voudrais configurer eclipse et tomcat de manière intégrée de manière à ce que les modifications apportées à mes JSP et servlets (si possible) soient immédiatement reflétées sans nécessiter de déploiement.
Ok, c'est l'une de ces questions qui a beaucoup de réponses sur Internet, mais elles semblent toutes différentes. (utilisez le plugin Sysdeo, utilisez le plugin JBOss, faites des trucs avec un Eclipse obsolète, utilisez MyEclipse à la place, etc.) et je n'ai pas trouvé de ressource définitive à laquelle faire référence. Donc, à mon avis, quelle est la procédure la plus simple et la plus recommandée pour configurer cela?
Cela suppose que j'éclipse et Tomcat fonctionnent indépendamment. En fait, j'ai réussi à les intégrer de manière non à chaud en utilisant les instructions ici: http://www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/index.html
Version Eclipse Version: 3.4.2 (Ganymède) Tomcat v6.0.20
Réponses:
Il existe deux options.
Tout d'abord, Eclipse vous permet de le faire, avec un léger changement de configuration (voir aussi cet article détaillé )
Cela reflétera toujours les changements de code mais ne redémarrera pas le serveur.
Deuxièmement, j'utilise le plugin FileSync depuis longtemps:
WEB-INF/classes
votre installation tomcat (c'est presque la même chose que la configuration de l'assembly de déploiement)Cela fonctionne parfaitement pour moi de cette façon. Chaque changement non structurel est reflété immédiatement, sans redéploiement.
Mise à jour:
vous pouvez en savoir plus sur les méthodes de déploiement à chaud ici .
J'ai également créé un projet qui synchronise facilement l'espace de travail avec le conteneur de servlet.
la source
Modules
onglet dans la configuration du serveur, puis cliquez suredit
, décochezauto deploy enabled
, je pense que c'est le moyen le plus simple. PS: votre premier chemin ne fonctionne pas pour moi.Laissez simplement eclipse écrire les fichiers de classe directement dans le répertoire $ TOMCAT / webapps / MyWebApp / WEB_INF / classes. Ensuite, configurez apache-tomcat pour vérifier si les fichiers de classe ont été mis à jour et rechargez-les si c'est le cas.
Pour configurer tomcat pour recharger automatiquement une classe lorsqu'elle change, vous devez
modifier
$TOMCAT/conf/context.xml
et définir:Vous devrez peut-être également modifier et recharger votre
webapps/$YourWebApp/web.xml
fichier et inclure:Je ne me souviens pas si les deux changements sont nécessaires, mais c'est ainsi que j'ai configuré mon tomcat-6.0.18 pour qu'il se recharge automatiquement.
la source
Context
éléments dans le fichier server.xml, mais il devrait surveiller / WEB-INF / classes / et / WEB-INF / lib pour tout changement. Où avez-vous lu sur l'attribut de l'web-app
élément?Avertissement : je suis juste un client satisfait, je ne travaille pas pour Zero Turnaround et je ne suis en aucun cas affilié à eux.
Découvrez JRebel - il vous permet de coder sans redémarrage de l'application Web. Cela fonctionne essentiellement en instrumentant vos classes et en adaptant leurs changements. Il gère beaucoup plus de cas que le déploiement à chaud , notamment:
C'est commercial , ( détails des prix , 550 $ / an à partir de juin 2018), et il a beaucoup de plugins pour les frameworks tiers, y compris:
Vous obtenez un essai gratuit sans douleur - je vous suggère d' essayer .
la source
Changez votre espace de travail dans Eclipse en \ tomcat \ webapps Comme c'est juste pour votre travail, cela devrait fonctionner correctement. Les modifications que vous apportez à Eclipse se trouvent dans le même répertoire, tomcat recherche les applications à déployer
la source
Dans la vue des serveurs, créez un nouveau serveur, n'ajoutez pas encore de ressource (projet) au serveur. Double-cliquez sur le serveur à l'emplacement des serveurs. Choisissez "Utiliser l'installation tomcat". Modifiez "Deploy path" dans le répertoire de déploiement de tomcat (Ex: c: \ server \ Tomcat 7.0.14 \ webapps). Développez la "section Publication". Cochez "Publier automatiquement après un événement de construction". Sauver et fermer. Dans le menu éclipse, cochez "Projet -> Construire automatiquement". Depuis la vue des serveurs, faites un clic droit sur votre serveur, "Ajouter et supprimer", publiez votre projet.
la source
Pourquoi ne pas utiliser un serveur tomcat intégré de with in eclipse si ce n'est que pour le développement? Vous pouvez configurer les serveurs sous window-> preferences. Une fois configuré, si vous avez un jsp appelé page.jsp, vous pouvez cliquer dessus avec le bouton droit de la souris et sélectionner Exécuter sur le serveur. Sous préférences-> général-> navigateur Web, vous pouvez choisir la météo pour utiliser le navigateur intégré ou un navigateur externe. Apportez des modifications à votre jsp, enregistrez et actualisez votre page à partir du navigateur. Les modifications seront automatiquement reflétées une fois que vous aurez enregistré et actualisé votre navigateur.
la source
Ce qui fonctionne pour moi ici, c'est:
context.xml comme ceci:
Puis, sur l'onglet Serveurs d'Eclipse, sur l'onglet "Modules", j'ai désactivé le "Rechargement automatique" de tous les modules en cours de déploiement.
Laissez également la configuration par défaut pour laisser la publication automatique.
Et si vous utilisez Maven avec WTP, n'oubliez pas de laisser le contenu de src / main / resources dedans, car Eclipse insiste pour exclure le contenu de ce dossier de la version finale.
Seulement avec tout cela, j'ai obtenu des classes (VM) complètes à déployer à chaud avec des ressources à déployer à chaud !!!
la source
Dans votre environnement de développement, pointez simplement votre serveur Tomcat pour qu'il recherche les JSP dans le répertoire dans lequel vous les développez. Dès que vous enregistrez le fichier, vous pourrez voir les modifications.
la source
J'ai réussi à faire fonctionner cela sur mon environnement de développement à l'aide de l' agent JVM Spring Loaded . Bien que je développe des applications Web Spring, la description de ce projet mentionne qu'il est
En utilisant la configuration suivante, j'ai pu obtenir des modifications à publier automatiquement sur une instance Tomcat attachée (la méthode habituelle Eclipse WTP). J'utilise Spring Tool Suite 3.7.3 basé sur Eclipse Mars.2 (4.5.2).
-javaagent:/path/to/downloaded/springloaded-1.2.5.RELEASE.jar -noverify
.class
fichiers du projet , configurez l'-Dspringloaded=watchJars=
argument VM en fonction des commentaires de ce problème .Démarrez le serveur et publiez-y les projets d'application Web dynamique comme d'habitude. Encore une fois, j'ai pu tester cela avec les applications Web Spring. Par exemple, la modification du code, l'ajout / la soustraction de méthodes, etc. dans les classes @Controller ont été appliquées presque instantanément après avoir enregistré le fichier et les builds Eclipse et publié la classe modifiée. Enfin, la section FAQ du projet Spring Loaded a mentionné quelques cas où les choses ne se rechargent pas, donc cela nécessiterait un redémarrage du serveur / de l'application. Mais ces exceptions sont beaucoup moins fréquentes.
Une dernière remarque: cela ne fonctionne PAS avec le serveur Pivotal tc intégré ou le serveur VMware vFabric tc fourni avec STS. Pour ces serveurs, il existe une option «Activer le rechargement basé sur l'agent Java (expérimental)», mais qui utilise l'ancienne version 1.2.0 de Spring Loaded, qui ne fonctionnait pas pour moi.
la source
Spring
en compte, que diriez-vous de l'Non Spring
application.Êtes-vous prêt à utiliser Jetty à des fins de développement?
Si tel est le cas, c'est assez simple à utiliser avec Maven - lancez simplement
mvn jetty:run
la source
Ce n'est peut-être pas la meilleure façon, mais cela fonctionne pour moi.
J'utilise une commande rsync pour synchroniser les modifications de mon projet jsp vers le $ contextPath.
Utilisez le débogage à distance dans Eclipse pour Tomcat, ce qui permettra un échange à chaud limité du code. Si vous modifiez des champs statiques ou ajoutez des méthodes, vous devrez exporter le fichier jar et redémarrer le contexte.
la source
pouvons-nous utiliser l'option ci-dessous? Double-cliquez sur Serveur dans eclipse -> Emplacements des serveurs -> Utiliser l'installation de tomcat. Il prend le contrôle de l'installation de tomcat. Vous n'avez pas besoin de redémarrer le serveur pour les modifications des classes Java.
la source
J'ai trouvé un moyen le plus simple: l'utilisation de liens symboliques: je pense que c'est le moyen le plus rapide car il n'y a pas de synchronisation du tout: le répertoire tomcat et le répertoire de votre projet seront toujours le même répertoire.
Tomcat détectera périodiquement les modifications et redéploiera votre application.
Il existe également un moyen de déboguer votre application, donc je pense humblement que c'est une bonne solution.
J'ai documenté ma solution ici , pour toute personne intéressée.
la source
Au cas où vous seriez pressé:
voila! :)
la source
Dans Eclipse, cliquez sur le projet dans le menu supérieur et assurez-vous que «Construire automatiquement» est sélectionné. Cela a résolu mon problème. J'utilisais Eclipse avec Tomcat en utilisant les métadonnées de mon espace de travail. J'exécutais également Maven dans un projet de module Web dynamique. Pour vérifier, ajoutez votre application à Tomcat. Démarrez Tomcat depuis Eclipse. Assurez-vous que votre application est déployée et en cours d'exécution. Ouvrez l'onglet Console dans Eclipse. Faites un changement dans votre application. Après quelques secondes, vous devriez voir votre modification être automatiquement créée et déployée sur Tomcat.
la source
Le plus simple et le plus rapide: configurez Eclipse pour générer un fichier WAR lorsque vous construisez; comme étape de post-construction, copiez ce fichier WAR dans votre répertoire tomcat webapps. Tomcat reconnaîtra la modification et actualisera le site sans aucun déploiement nécessaire. Notez que ce n'est pas parfait; les utilisateurs utilisant cette application Web peuvent avoir une expérience moins qu'optimale, car Tomcat redémarre l'application Web «sous» eux; mais cela correspond à votre demande.
la source