Récemment, j'ai rencontré cette erreur dans mon application web :
java.lang.OutOfMemoryError : Espace PermGen
Il s'agit d'une application typique Hibernate/JPA + IceFaces/JSF fonctionnant sous Tomcat 6 et JDK 1.6. Apparemment, cela peut se produire après avoir redéployé une application plusieurs fois.
Quelles en sont les causes et que peut-on faire pour l'éviter ? Comment résoudre le problème ?
0 votes
Je me suis battu contre ça pendant des heures, mais je n'ai pas de bonnes nouvelles. Voir ma question connexe : stackoverflow.com/questions/1996088/ Il se peut qu'il y ait encore une fuite de mémoire, par exemple, les classes ne sont pas collectées parce que votre WebAppClassLoader n'est pas collecté (il a une référence externe qui n'est pas effacée). Augmenter le PermGen ne fera que retarder l'OutOfMemoryError, et permettre la collecte des classes est une condition préalable, mais ne collectera pas les classes si leur chargeur de classe a encore des références à elles.
0 votes
J'ai obtenu cette erreur en ajoutant afficher taglib . La suppression de ce dernier a également résolu l'erreur. Pourquoi so ?
0 votes
Et comment êtes-vous tombé dessus ?
13 votes
Utiliser le JDK 1.8 :þ bienvenue dans le MetaSpace
0 votes
Si vous utilisez Windows, suivez ces instructions au lieu d'essayer de définir les drapeaux manuellement dans les fichiers de configuration. Ceci définit correctement les valeurs dans le registre qui seront appelées par Tomcat pendant l'exécution. stackoverflow.com/questions/21104340/