これは、NetBeansによって開始されたTomcatサーブレットコンテナのインスタンスでWebアプリケーションを実行すると発生するエラーです。これを修正するために、netbeans.confのヒープサイズを変更しましたが、それでも同じエラーが表示されます。これを防ぐにはどうすればよいですか?
HTTPステータス500- ------------------------------- ------------------------------------------------- type Exception report message descriptionサーバーで内部エラー()が発生したため、このリクエストを実行できませんでした。 例外 javax.servlet.ServletException:サーブレットの実行で例外がスローされました org.netbeans.modules.web.monitor.server.MonitorFilter .doFilter(MonitorFilter.Java:362) 根本原因 Java.lang.OutOfMemoryError:Javaヒープspace note根本原因の完全なスタックトレースは、Apache Tomcat/5.5.9ログで確認できます。
Netbeans.confのヒープサイズを変更しても、NetBeans自体のヒープのみが変更され、NetBeansを介して実行されるアプリケーションは変更されません。
正しい方法は、プロジェクトを右クリックして[プロパティ]を選択し、次に[実行]を選択することです。そこでVMオプションを適切に設定できます(-Xmx256m
、 例えば)。次のようになります。
(この写真を見つけてくれてありがとう VonC )
Tomcatサーバーを停止し、環境変数CATALINA_OPTSを設定してから、Tomcatを再起動します。ファイルTomcat-install/bin/catalina.sh
またはcatalina.bat
この変数の使用方法。例えば、
set CATALINA_OPTS="-Xms512m -Xmx512m" (Windows)export CATALINA_OPTS="-Xms512m -Xmx512m" (ksh/bash)setenv CATALINA_OPTS "-Xms512m -Xmx512m" (tcsh/csh)
catalina.bat
またはcatallina.sh
、お気づきかもしれませんが、CATALINA_OPTS、Java_OPTS、またはその両方を使用して、Tomcat JVMオプションを指定できます。
CATALINA_OPTSとJava_OPTSの違いは何ですか?
CATALINA_OPTSという名前はTomcatサーブレットコンテナに固有ですが、Java_OPTSは他のJava=アプリケーション(JBossなど)によって使用される場合があります。環境変数はすべてのアプリケーションによって共有されるため、Tomcatに他のアプリ向けのJVMオプションを誤って選択してしまったため、CATALINA_OPTSを使用したい。
JBossでJavaヒープサイズを設定する方法は?
JBossサーバーを停止し、$ JBOSS_HOME/bin/run.confを編集してから、JBossサーバーを再起動します。 Java_OPTSの行を次のように変更できます。
Java_OPTS="-server -Xms128m -Xmx128m"
Javaヒープサイズを設定する方法は?2つのオプションがあります。
Eclipse-home/Eclipse.iniを次のように編集して、Eclipseを再起動します。
-vmargs-Xms64m-Xmx256m
または、最後に追加オプションを指定してEclipseコマンドを実行することもできます。 -vmargs以降はJVMオプションとして扱われ、JVMに直接渡されます。この方法でコマンドラインで指定されたJVMオプションは、常にEclipse.iniのオプションをオーバーライドします。例えば、
Eclipse -vmargs -Xms64m -Xmx256m
NetBeansでJavaヒープサイズを設定する方法は?
NetBeansを終了し、netbeans-install/etc/netbeans.confファイルを編集します。例えば、
netbeans_default_options="-J-Xms512m -J-Xmx512m -J-XX:PermSize=32m -J-XX:MaxPermSize=128m -J-Xverify:none
Apache AntでJavaヒープサイズを設定する方法は?
環境変数ANT_OPTSを設定します。ファイル$ANT_HOME/bin/ant
または%ANT_HOME%\bin\ant.bat
、この変数がAntランタイムでどのように使用されるか。
set ANT_OPTS="-Xms512m -Xmx512m" (Windows)export ANT_OPTS="-Xms512m -Xmx512m" (ksh/bash)setenv ANT_OPTS "-Xms512m -Xmx512m" (tcsh/csh)
Tomcatサーバーの仮想メモリを増やす場合、問題はありません。
-Xms512m
in VM optionsフィールドメモリを増やしても問題は解決しないと思います。 MonitorFilterは何をしていますか?その記憶を何が食べているのですか?
あなたの最善の策はそれを理解することです。これがWebアプリの場合は、そのフィルターをオフにして、それなしで実行できるかどうかを確認してください。成功した場合は、MonitorFilterが原因でが失敗することがわかります。
これはNetBeans(おそらく)とは関係ありませんが、Tomcatと関係があります。 Tomcatは、NetBeansではなく、ヒープが不足しているプロセスです。 Tomcatの起動プロセスを追跡します。 NBにバンドルされている場合、TomcatはNBインストールに埋め込まれています。 "enterpriseN"ディレクトリを確認してください。Nは数字です。Tomcatはおそらくそこにあり、かなり一般的なディストリビューションです。
モニターがOOMで実行される理由については、言うのは難しいですが、考えると、それは非常に単純なプロセスです。 HTTPモニタリングを無効にして、モニタリング自体の問題か、アプリケーションの問題かを確認することもできます。