java.lang.OutOfMemoryError (Speicherbereich PermGen) und java.lang.ClassNotFoundException beim Öffnen der JSP-Seite

8

Ich benutze SpringSource Tool Suite 3.0.1, Tomcat Server 7.0.21, Maven-2.2.1. Ich habe meine Webanwendung erfolgreich erstellt, Tomcat Server ausgeführt. Die Anwendung hat erfolgreich funktioniert. Nach dem Neustart Tomcat Server sah ich die nächsten Fehler mit Ausnahmen auf der Web-Seite login.jsp:

%Vor%

und

%Vor%

login.jsp - Die Homepage wird von SpringSecurity konfiguriert.

Ich verstehe die Ursache des Problems nicht, weil ich das Projekt nicht neu erstellt habe. Danach versuche ich mehrere Möglichkeiten zur Fehlerbehebung:

  • Projekt aktualisieren
  • Projekt säubern und neu erstellen
  • Update maven-Abhängigkeit
  • Sauberes Tomcat-Arbeitsverzeichnis
  • Schaltfläche "Löschen" im Servermenü

Nichts half mir nicht. Die interne Logik der Anwendung funktioniert jedoch ordnungsgemäß (sie ist nicht mit der Webschnittstelle verknüpft). Ich bekomme entsprechende Log-Nachrichten. Aber sobald ich die Seite login.jsp öffne, bekomme ich die Fehlermeldungen. Dann habe ich versucht, zur vorherigen stabilen Version des Projekts zurückzukehren. Leider habe ich die gleichen Fehler.

Melden Sie sich in der Konsole an, um die folgenden Meldungen anzuzeigen, bevor Sie die Fehlermeldungen auf der Seite logon.jsp ausgeben:

%Vor%

Ich habe ähnliche Fragen gefunden: Ссылка und Ссылка . Aber es hat mir nicht geholfen.

Wie man dieses Problem löst?

    
Didgeridoo 02.04.2012, 11:27
quelle

4 Antworten

19

Stellen Sie für den OutOfMemory-Fehler sicher, dass Sie die folgenden Parameter (und mit einem respektablen Wert) festgelegt haben

%Vor%

BEARBEITEN:

512m und 1024m sind nur Vorschläge! Möglicherweise müssen Sie diese Einstellungen an Ihre Hardwareressourcen anpassen.

Normalerweise sollten Sie von ungefähr 128m starten und jedes Mal, wenn Sie einen OutOfMemory-Fehler erhalten, versuchen, den zugewiesenen Betrag zu verdoppeln.

Zum Beispiel:

  • Sie haben 256m für MaxPermSize und Sie erhalten OutOfMemory - der neue Schwellenwert sollte auf 512m gesetzt werden

  • Sie haben 512m für MaxPermSize und Sie erhalten OutOfMemory - der neue Schwellenwert sollte auf 1G gesetzt werden

Weitere Details zur Optimierung von JVM-Parametern finden Sie in der offiziellen Java-Dokumentation unter Oracle .

    
Bogdan Emil Mariesan 02.04.2012, 11:29
quelle
14

Nur eine erweiterte Version von Bogdans Antwort 1. Im Hauptmenü gehen Sie zu Window - & gt; Zeige Ansicht - & gt; Server
2. Auf der Server Ansicht doppelklicken Sie auf Tomcat 3. Eine Tomcat Overview Seite wird geöffnet 4. Suchen Sie nach ' Allgemeine Informationen ' und klicken Sie auf ' Startkonfiguration öffnen '
5. Gehen Sie im Popup ' Konfiguration bearbeiten auf den Reiter Argumente 6. Suchen Sie den Abschnitt VM-Argumente und platzieren Sie -Xmx1024m -XX: MaxPermSize = 512m dort 7. Klicken Sie auf "OK" und starten Sie Ihren Tomcat.

    
Anton Shchastnyi 05.12.2013 11:04
quelle
1

Es sieht so aus, als würde Tomcat die JSPs kompilieren. Sie sollten in Erwägung ziehen, die JSPs vorzuliefern (was den zusätzlichen Vorteil hätte, dass Sie die JSPs auf Syntaxfehler überprüfen, bevor Sie Ihre App bereitstellen).

Siehe auch: Wie kann ich Tomcat erstellen? -kompilierte JSPs beim Start?

    
beny23 02.04.2012 11:50
quelle
0

Dies hängt davon ab, welche Datei Sie ausführen, entweder catalina.bat oder catalina.sh. Legen Sie die Java-Optionen wie folgt fest und versuchen Sie Folgendes:

%Vor%     
Jyotshna Pardhia 25.06.2013 07:33
quelle

Tags und Links