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

JSF Java Discussion :

[Tomcat] Erreur "com.sun.faces.config.InitFacesContext failed to remove when webapp was stopped"


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 16
    Par défaut [Tomcat] Erreur "com.sun.faces.config.InitFacesContext failed to remove when webapp was stopped"
    Bonjour,

    Je travaille actuellement sur une application en JSF2 sous tomcat 6.0.26.
    Sous Eclipse un message apparait dans la console, que je n'arrive pas corrigé.
    Ce message apparait lors du RESTART automatique de tomcat sous Eclipse suite à un changement dans les sources.


    GRAVE: A web application created a ThreadLocal with key of type [null] (value [javax.faces.context.FacesContext$1@dc420b]) and a value of type [com.sun.faces.config.InitFacesContext] (value [com.sun.faces.config.InitFacesContext@7413e8]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
    Pouvez vous me donner des pistes pour résoudre ce problème ?

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Eclipse ne gère pas correctement le redéploiement des sources sur une application web qui tourne.
    Du coup, la modification du code source compilé (les .class) nécessite l'arrêt du serveur Tomcat.

    Ou alors, il te faut utiliser l'outil JRebel qui te permettra de redéployer à chaud tes sources, ce qui te fera gagner un temps considérable au bout d'un moment...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 16
    Par défaut
    Pour vérifier que mon problème correponde à ta réponse, j'ai donc déployé mon appli sur mon tomcat local directement sans Eclipse.

    Je remarque que sur REdéploiement à chaud de mon application sur le serveur tomcat le message apparait quand même dans les logs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    9 nov. 2011 11:13:48 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
    GRAVE: A web application created a ThreadLocal with key of type [null] (value [javax.faces.context.FacesContext$1@1c82208]) and a value of type [com.sun.faces.config.InitFacesContext] (value [com.sun.faces.config.InitFacesContext@324b85]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
    J'ai plutôt l'impression que la partie JSF ne se nettoie pas bien lors d'un réploiement à chaud.

    Une piste ? J'ai dans ma webapp un "ServletContextListener" qui lors du stoppe de ma webapp me permet de nettoyer certaines choses avec la méthode : "contextDestroyed(ServletContextEvent event)"

    Mais je n'ai rien mis concernant le nettoyage de JSF ne sachant pas quoi mettre et si c'est nécessaire de le faire. Est ce que vous mettez des choses concernant le nettoyage JSF 2 dans cette méthode ?

    Mais ca n'est peut être pas une bonne piste pour résoudre mon problème. Avez-vous d'autres idées ?

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Je pense que c'est Tomcat qui ne sait pas redéployer correctement les webapps dans une grande majorité des cas
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 16
    Par défaut
    Merci pour tes réponses,

    Ok, alors faut oublié les deploiements à chaud avec Tomcat et redémarrer le serveur à chaque déploiement ?
    Ca me semble bien contraignant, quand même.

    Ou alors utiliser GlassFish peut être qui gère mieux ce genre de cas ?

    Dans ta boite vous faites comment ? Vous avez des serveurs tomcat ? et vous redémarrer le serveur à chaque fois ou 1 fois la nuit pour nettoyer ?

    Vous utilisez un autre type serveur ?

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Chez nous, nous utilisons JRebel pour faire du déploiement des modifications à chaud sur les machines des développeurs (on utilise Eclipse).

    Pour les déploiements de nouvelles versions sur les Tomcat d'homologation, UAT, etc., on fait ça "proprement", c'est-à-dire on stoppe le Tomcat, on le nettoie, on déploie la nouvelle version, et on redémarre (ce sera très bientôt fait par des scripts exécutés via Jenkins, mais le procédé ne changera pas).
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/03/2011, 15h47
  2. Réponses: 0
    Dernier message: 18/03/2010, 21h01
  3. com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED
    Par toure32 dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 10/02/2010, 01h38
  4. JSF hidden com.sun.faces.VIEW
    Par fxp17 dans le forum JSF
    Réponses: 2
    Dernier message: 13/09/2007, 17h00
  5. Réponses: 2
    Dernier message: 21/09/2006, 17h05

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