IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Faut-il tjs redémarrer tomcat pour prise en compte des modifications des .class dans WEB-INF/classes ?


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut Faut-il tjs redémarrer tomcat pour prise en compte des modifications des .class dans WEB-INF/classes ?
    Bonjour à tous,

    j'ai remarqué que lorsqu'on modifie un fichier .class dans le répertoire WEB-INF/classes d'une appli, il fallait redémarrer tomcat pour qu'ils prennent en compte les modifs.
    Dans un environnement de production, je pense que ceci peut être un problème, non ? D'où ma question, existe-t'il un moyen pour que les modifs soient prises en compte sans avoir à redémarrer le serveur ?

    Merci à vous pour vos réponses

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2002
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 233
    Par défaut
    Ca ne doit pas toujours le cas, il faut voir les paramètres autodeploy de la configuration du server.xml

  3. #3
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    sur mon serveur, les fichiers .jsp et class. sont rafraichis automatiquement si je les modifie, ça doit dépendre effectivement des paramètres du server.xml
    En revanche il arrive que le rafraichissement des .class bloque le serveur (plus aucune servlet ne réagit).
    En général je m'en sors en faisant ctrl+C dans la console tomcat, mais des fois en plus de débloquer Tomcat ça le coupe carrément.

    Bref je trouve pas ça hyper fiable et si ça peut bien dépanner, c'est quand même pas une pratique que je recommande en production (je crois que sous JBoss par exemple c'était une cause de OutOfMemory: PermGenSpace, ça m'étonnerai pas que ça fasse la même chose sous Tomcat)

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si les webapp sont pas propre, il arrive que catalina (le moteur derrière tomcat) ne sache pas nettoyer le classloader de la webapp, résultat les classloader s'accumulent au fur et à mesure jusqu'à atteindre le remplissage du permgen. Sinon, théoriquement, pas besoin de redémarrer tomcat, mais il faut redémarrer la webapplication concernée (en autodeploy, elle redémarre d'elle même). En pratique, si tu utilise du hibernate ou autre librairie basée sur cglib, tu va manger du permgen si tu fais ça

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    il me semble avoir trouvé une solution :

    dans l'appli qui doit être rechargée au cas où un .class a été modifié (axis dans mon cas, je fais des web services), dans un répertoire META-INF, je crée un fichier context.xml qui contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <Context path="/axis" docBase="axis" reloadable="true" />
    et ça recharge le contexte dès qu'un class a été modifié. Mais je crois que c'est un process qui tourne en boucle et ce n'est pas terrible (enfin en dév ça va).

    Sinon quand ce sera en prod je pensais recharger le context de mon appli via le gestionnaire des application Tomcat, à la main donc, sachant que ce sera fait que lors d'une nouvelle mise en production, donc assez rarement.

    qu'en pensez-vous ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    qu'en prod il vaut mieux planifier une mise a jou incluant un arret de quelques minutes du tomcat

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    qu'en prod il vaut mieux planifier une mise a jou incluant un arret de quelques minutes du tomcat
    oui mais ça impliquerait de prévenir tous les clients, ce qui n'est pas chose aisée pour nous...

    je ne peux pas recharger le contexte manuellement sans arrêter tomcat ?? quel serait le problème ?

    De plus, peut être que je me trompe, mais j'ai l'impression que tomcat recharge le contexte uniquement lorsqu'il a terminé les traitements qu'il était eventuellement en train de faire. Et dans ce cas tout va bien, non ? Me trompe-je ?

Discussions similaires

  1. Macro : Remplacer "." par "/" pour prise en compte format date
    Par neronne dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/01/2018, 17h37
  2. Réponses: 1
    Dernier message: 24/05/2008, 17h04
  3. Réponses: 4
    Dernier message: 07/02/2008, 11h57
  4. regex pour comparer des dates, des chiffres, des nombres
    Par lex13 dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 06/07/2007, 11h51
  5. Réponses: 2
    Dernier message: 28/06/2007, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo