88 votes

Intégration de tomcat et éclipse comme un chaud-déployer l’environnement

Je voudrais d'installation d'eclipse et tomcat dans une approche intégrée de la mode tels que des changements à ma Jsp et de servlets(si possible) sont reflétées immedietely sans nécessiter de déploiement.

Ok, c'est une de ces questions qui a beaucoup de réponses tout à travers l'internet, mais ils semblent tous différents. (utiliser le plugin Sysdeo, l'utilisation de JBOss plugin, faire des trucs avec de la vétusté de l'Éclipse, l'utilisation MyEclipse au lieu de cela, etc.) et je ne pouvais pas trouver 1 définitif de ressources à consulter. Donc, pour mon bénéfice, ce qui est le plus simple et le plus recommandé procédure pour configurer cela ?

Cela suppose que j'ai eclipse et tomcat fonctionnant de manière indépendante. En fait, j'ai réussi à les intégrer dans un non-déploiement à chaud de la mode en utilisant les instructions ici : http://www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/index.html

Eclipse version Version: 3.4.2 (Ganymède) Tomcat v6.0.20

75voto

Bozho Points 273663

Il y a deux options.

Tout d'abord, Eclipse vous permet de faire cela, avec une légère modification de la configuration (voir également à ce poste détaillée)

  • ajouter le serveur Tomcat à la liste de serveurs
  • le projet "Dynamic web project" (Soit par le biais de l'assistant de création de ou à travers les facettes de la section dans les réglages)
  • ajouter le projet de tomcat, et configurer son "Déploiement de l'assemblée"
  • double-cliquez sur tomcat à partir de la liste pour ouvrir les configurations
  • Changer la "Publication" de "ne Jamais publier automatiquement" (cela signifie que le serveur n'obtiendrez pas redémarrés lorsque vous appuyez sur ctrl+s)
  • démarrer tomcat en mode debug

Ce sera toujours le reflet des changements de code, mais ne pas redémarrer le serveur.

Deuxièmement, j'ai utilisé le FileSync plugin pour une longue période de temps:

  • configurer le plugin pour envoyer toutes les classes à partir de la corbeille de directeur de WEB-INF/classes de votre installation de tomcat (ce qui est presque la même que la configuration, le déploiement de l'assemblée)
  • configurer toutes les autres ressources nécessaires pour aller à leurs emplacements respectifs
  • en option, l'externalisation de tous les chemins d'accès absolus de la filesync les paramètres de localisation à une seule variable, et de configurer cette variable dans eclipse (ainsi vous serez capable de commettre le filesync paramètres ainsi, si tous les membres sont à l'aide d'eclipse)
  • ajouter le serveur Tomcat à la liste de Serveurs dans eclipse, configurer le Serveur "emplacements" option "Utiliser l'installation de tomcat" (l'écran s'ouvre lorsque vous double-cliquez sur tomcat à partir de la liste de serveurs)
  • démarrer tomcat en mode debug

Il fonctionne parfaitement pour moi de cette façon. Tous les non-changement structurel est pris en compte immédiatement, sans redéployer.

Mise à jour:
Vous pouvez lire plus sur les méthodes pour les hot-déploiement de ici.
J'ai également créé un projet qui se synchronise facilement l'espace de travail avec le conteneur de servlet.

30voto

Martin Tilsted Points 489

Il suffit de laisser l'éclipse écrire les fichiers de classe directement à l' $TOMCAT/webapps/MyWebApp/WEB_INF/répertoire classes. Ensuite, configurer apache-tomcat pour vérifier si les fichiers de classe ont été mis à jour, et les recharger si ils en ont.

Pour configurer tomcat pour auto-recharger une classe en cas de changement, vous avez besoin de

edit $TOMCAT/conf/context.xml et mis :

<Context reloadable="true"> 

Vous pouvez également modifier et de recharger votre webapps/$YourWebApp/web.xml le fichier et comprennent :

<web-app reloadable="true">

Je ne me souviens pas si les deux changements sont nécessaires, mais voilà comment j'ai configuré mon tomcat-6.0.18 à l'auto-reload.

7voto

Robert Munteanu Points 31558

Avertissement: je suis juste un client heureux, je ne travaille pas pour le Zéro de Redressement, et je ne suis pas en aucune façon affiliée avec eux.

Découvrez JRebel - il vous permet de vous code web sans redémarrage de l'application. Il fonctionne essentiellement par instrumentant vos classes et l'adaptation de leurs modifications. Il gère beaucoup plus de cas que de déploiement à chaud, y compris:

  • Ajout/suppression d'une des méthodes de
  • Ajout/suppression de constructeurs
  • Évolution des interfaces
  • Ajout/suppression d'une mise en œuvre des interfaces

C'est commercial, mais pas trop cher ( 59 USD Personnels, USD 149 de l'Entreprise) , et il a beaucoup de plugins pour les tiers de cadres, y compris:

  • Guice
  • Printemps
  • Struts 2

Vous obtenez un essai gratuit de tout à fait sans douleur - je vous suggère de donner un coup de feu. C'est même gratuit pour de développement de logiciels libres (cliquez sur Appliquer dans la partie droite).

3voto

PaganSensei Points 84

Modifier votre espace de travail Eclipse à \tomcat\webapps puisque c’est juste pour votre travail, cela devrait fonctionner correctement. Quelles que soient les modifications apportées dans Eclipse est dans le même tomcat répertoire cherche à déployer des applications

3voto

ticu0000 Points 31

Dans les serveurs d'afficher , de créer un nouveau serveur , ne pas ajouter une ressource (du projet) sur le serveur. Double-cliquez sur le serveur sur les serveurs de localisation. Choisissez "Utiliser l'installation de tomcat". Modifier "chemin d'accès de déploiement" pour le tomcat répertoire de déploiement (Ex: c:\server\Tomcat 7.0.14\webapps). Étendre la "Publication de l'article". Cochez la case "publier Automatiquement après un événement de construction". Enregistrer et fermer. À partir de l'éclipse à cocher du menu "Project -> Build automatiquement". À partir de la vue des serveurs , cliquez droit sur votre serveur , "Ajout et suppression de" , de publier votre projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X