Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

java.lang.OutOfMemoryError: PermGen Espace après la transformation du projet dans Maven

Il y a quelques questions sur ce sujet et j'ai traversé toutes les réponses, mais j'ai toujours le même problème. J'essaie de mettre en œuvre spring security Dans le projet existant qui n'a pas précédemment utilisé spring. J'ai transformé avec succès dans le projet maven Et sans problèmes ajoutés le formulaire de connexion. J'ai continué à faire des changements supplémentaires, est allé pendant une journée, retourné à la suivante, et tomcat Il a commencé à émettre cette erreur. J'ai essayé de retourner les changements que je l'ai fait et rien n'a changé jusqu'à ce que je puisse éteindre la nature du pays maven. Dès que je l'ai fait, l'erreur a disparu et dès que je me suis installé as maven project, Erreur retourne.

J'ai essayé les choses suivantes comme il a été proposé dans d'autres réponses stack overflow:

Ajouter une variable personnalisée _JAVA_OPTIONS -Xmx1024m Dans les variables

Ajouter une variable personnalisée MAVEN_OPTS -Xmx1024m Dans les variables

Une addition -XX:MaxPermSize=128M et -XX:PermSize=128M après -vmargs dans eclipse.ini

Installation Java_OPTS sur -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

Une addition -Xmx512m à mon POM

Une addition -XX:MaxPermSize=512m et -XX:PermSize=512m à ma configuration de lancement Tomcat

Initialement, la génération Perm était 99%, Cependant, après avoir ajouté -XX:PermSize=128M à eclipse.ini Il est allé à un pourcentage beaucoup plus faible, mais ce problème est toujours préservé

Merci d'avance! Tout conseiller à ce stade serait utile.


Je reçois une des deux erreurs qui ressemblent à différentes traces de pile.


java.lang.OutOfMemoryError: PermGen space
Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
at java.lang.Throwable.getStackTraceElement/Native Method/
at java.lang.Throwable.getOurStackTrace/Throwable.java:591/
at java.lang.Throwable.printStackTrace/Throwable.java:462/
at java.lang.Throwable.printStackTrace/Throwable.java:451/
at org.apache.catalina.startup.Bootstrap.main/Bootstrap.java:450/

java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1/Native Method/
at java.lang.ClassLoader.defineClassCond/Unknown Source/
at java.lang.ClassLoader.defineClass/Unknown Source/
at java.security.SecureClassLoader.defineClass/Unknown Source/
at org.apache.catalina.loader.WebappClassLoader.findClassInternal/WebappClassLoader.java:2818/
at org.apache.catalina.loader.WebappClassLoader.findClass/WebappClassLoader.java:1148/
at org.apache.catalina.loader.WebappClassLoader.loadClass/WebappClassLoader.java:1643/
at org.apache.catalina.loader.WebappClassLoader.loadClass/WebappClassLoader.java:1521/
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes/ContextConfig.java:1956/
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream/ContextConfig.java:1919/
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar/ContextConfig.java:1806/
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl/ContextConfig.java:1765/
at org.apache.catalina.startup.ContextConfig.processAnnotations/ContextConfig.java:1751/
at org.apache.catalina.startup.ContextConfig.webConfig/ContextConfig.java:1255/
at org.apache.catalina.startup.ContextConfig.configureStart/ContextConfig.java:882/
at org.apache.catalina.startup.ContextConfig.lifecycleEvent/ContextConfig.java:317/
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent/LifecycleSupport.java:119/
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent/LifecycleBase.java:89/
at org.apache.catalina.core.StandardContext.startInternal/StandardContext.java:5081/
at org.apache.catalina.util.LifecycleBase.start/LifecycleBase.java:145/
at org.apache.catalina.core.ContainerBase.startInternal/ContainerBase.java:1033/
at org.apache.catalina.core.StandardHost.startInternal/StandardHost.java:774/
at org.apache.catalina.util.LifecycleBase.start/LifecycleBase.java:145/
at org.apache.catalina.core.ContainerBase.startInternal/ContainerBase.java:1033/
at org.apache.catalina.core.StandardEngine.startInternal/StandardEngine.java:291/
at org.apache.catalina.util.LifecycleBase.start/LifecycleBase.java:145/
at org.apache.catalina.core.StandardService.startInternal/StandardService.java:443/
at org.apache.catalina.util.LifecycleBase.start/LifecycleBase.java:145/
at org.apache.catalina.core.StandardServer.startInternal/StandardServer.java:727/
at org.apache.catalina.util.LifecycleBase.start/LifecycleBase.java:145/
at org.apache.catalina.startup.Catalina.start/Catalina.java:620/
at sun.reflect.NativeMethodAccessorImpl.invoke0/Native Method/


Mettre à jour:
Comme suggéré dans les commentaires, il semble, montre exactement quel est le problème. Le gène permanent est complètement montré. Quelle est la différence entre cela et ce qui montre jmap /Une autre photo/? On dit 16 MB et plein, l'autre dit 128 MB et espace libre. Comment augmenter le volume de Perm dans cette image?
Invité:

Christine

Confirmation de:

Je suppose que vous utilisez plugin m2e. Si vous utilisez m2e pour l'exécution maven proess, Il lancera séparément jvm. Vous devez configurer l'argument VM Pour ce processus. Voir Screenshot ci-dessous. Vous pouvez essayer d'abord avec un projet simple. maven, Avant de l'appliquer à votre projet.

Échantillon pom.xml


<project xmlns="[url=http://maven.apache.org/POM/4.0.0"]http://maven.apache.org/POM/4.0.0"[/url] xmlns:xsi="[url=http://www.w3.org/2001/XMLSchema-instance"]http://www.w3.org/2001/XMLSchema-instance"[/url] xsi:schemalocation="[url=http://maven.apache.org/POM/4.0.0]http://maven.apache.org/POM/4.0.0[/url] [url=http://maven.apache.org/xsd/maven-4.0.0.xsd">]http://maven.apache.org/xsd/ma ... gt%3B[/url]
<modelversion>4.0.0</modelversion>
<groupid>foo</groupid>
<artifactid>bar</artifactid>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupid>org.apache.tomcat.maven</groupid>
<artifactid>tomcat7-maven-plugin</artifactid>
</plugin>
</plugins>
</build>
</project>


Réglage maven buts. Assurez-vous de choisir la zone de travail correctement et installée maven buts. Tu dois utiliser
tomcat7:run

, Si vous utilisez un plugin tomcat7

Définir des arguments VM. Exemple: - Xmx1024m -Xms1024m -XX:MaxPermSize=512m -XX:PermSize=256m

Vérifiez l'argument JVM, que vous avez demandé en utilisant JVisualVM. Sélectionnez le processus et entrez-le dans l'onglet Aperçu. Un exemple de capture d'écran, comme indiqué ci-dessous.

Pour répondre aux questions, connectez-vous ou registre