java.lang.OutOfMemoryError: Java heap space mit NetBeans
Dies ist die Fehlermeldung die ich bekomme, wenn ich meine web-Anwendung in eine Instanz des Tomcat-servlet-container gestartet von NetBeans. Um dies zu beheben habe ich auch geändert die heap-Größe in netbeans.conf, aber trotzdem zeigt es den gleichen Fehler. Wie kann ich dies verhindern?
HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report Nachricht Beschreibung Der server hat einen internen Fehler (), die es verhindert die Erfüllung dieser Anforderung. Ausnahme javax.- servlet.ServletException: Servlet-Ausführung hat eine Ausnahme ausgelöst org.netbeans.Module.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362) Ursache java.lang.OutOfMemoryError: Java heap space Hinweis: Der volle stack-trace, der die Ursache ist in den Apache Tomcat/5.5.9-Protokolle.
InformationsquelleAutor der Frage | 2009-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die heap-Größe in netbeans.conf ändert nur den heap für NetBeans selbst, nicht für Anwendungen über NetBeans.
Dem richtigen Weg ist, um mit der rechten Maustaste auf das Projekt und wählen Sie "Eigenschaften" und dann auf "Ausführen", dort können Sie die VM-Optionen entsprechend (
-Xmx256m
zum Beispiel). Es sollte in etwa so Aussehen:(Dank an VonC für die Suche nach diesem Bild.)
InformationsquelleAutor der Antwort Michael Myers
Stoppen Sie Tomcat-server, legen Sie die Umgebungsvariable CATALINA_OPTS, und dann starten Sie Tomcat neu. Schauen Sie in die Datei
tomcat-install/bin/catalina.sh
odercatalina.bat
wie diese variable verwendet wird. Zum Beispiel,In
catalina.bat
odercatallina.sh
Sie vielleicht bemerkt haben, CATALINA_OPTS, JAVA_OPTS, oder beide können verwendet werden, um anzugeben, Tomcat JVM-Optionen.Was ist der Unterschied zwischen CATALINA_OPTS und JAVA_OPTS?
Den Namen CATALINA_OPTS ist speziell für die Tomcat-servlet-container, in der Erwägung, dass JAVA_OPTS können verwendet werden, die von anderen java-Anwendungen (z.B. JBoss). Da die environment-Variablen werden von allen Programmen gemeinsam ist, wollen wir nicht Tomcat versehentlich abholen der JVM-Optionen sollen auch für andere apps. Ich benutze lieber CATALINA_OPTS.
Eingestellt wie java-heap-Größe in JBoss?
Stoppen Sie JBoss server, Bearbeiten $JBOSS_HOME/bin/run.conf ein, und starten Sie JBoss-server. Sie können ändern Sie die Zeile JAVA_OPTS etwas wie:
Eingestellt wie java-heap-Größe in Eclipse?
Sie haben 2 Optionen:
Bearbeiten eclipse-home/eclipse.ini-um so etwas wie die folgenden und
starten Sie Eclipse erneut.
-vmargs-Xms64m-Xmx256m
Oder Sie können einfach starten Sie eclipse-Befehl mit zusätzlichen Optionen auf
sehr Ende. Alles, was nach -vmargs behandelt werden als JVM-Optionen und
übergeben direkt an die JVM. JVM-Optionen im Befehl angegebene
Linie dieser Art haben immer Vorrang vor denen in eclipse.ini. Für
Beispiel
eclipse -vmargs -Xms64m -Xmx256m
Eingestellt wie java-heap-Größe in NetBeans?
Ausfahrt NetBeans, Bearbeiten Sie die Datei netbeans-Installation/etc/netbeans.conf. Zum Beispiel,
Eingestellt wie java-heap-Größe in Apache Ant aus?
Set environment variable ANT_OPTS. Schauen Sie in die Datei
$ANT_HOME/bin/ant
oder%ANT_HOME%\bin\ant.bat
wie diese variable verwendet wird, die von Ant runtime.InformationsquelleAutor der Antwort Rakesh
Wenn Sie erhöhen Sie den virtuellen Speicher Ihres Tomcat-server, dann wird es OK sein.
Schritte aus:
-Xms512m
im VM-Optionen FeldInformationsquelleAutor der Antwort
Ich vermute, dass die Erhöhung der Speicher wird nicht das problem zu beheben. Was ist, MonitorFilter tun? Was Essen, bis alle, dass der Speicher?
Ihre beste Wette ist, um das herauszufinden. Wenn dies ist eine web-app, sehen Sie, wenn Sie können schalten Sie den filter und führen Sie, ohne es. Wenn Sie Erfolg haben, Sie wissen, dass die MonitorFilter dazu führt, dass Ihr zu scheitern.
InformationsquelleAutor der Antwort duffymo
Dies hat nichts zu tun mit NetBeans (naja, vielleicht), sondern es hat zu tun mit Tomcat. Tomcat ist der Prozess, der ausgeführt wird out-of-heap, nicht NetBeans. Die Spur des Startvorgangs für die Tomcat. Wenn es im Bundle mit der NB, dann Tomcat ist begraben innerhalb der NB-installation, überprüfen Sie für eine "enterpriseN" Verzeichnis, wobei N eine Zahl ist, die Tomcat ist wohl drin und es ist ein eher generische Verteilung.
Warum der monitor ausgeführt wird, OOM, das ist schwer zu sagen, es ist ein ziemlich einfacher Prozess, wenn Sie über Sie denken. Sie können auch versuchen, deaktivieren die HTTP-überwachung, um zu sehen, wenn es ein problem mit der Überwachung selbst oder etwas, das mit Ihrer Anwendung.
InformationsquelleAutor der Antwort Will Hartung