15

これは、NetBeans によって開始された Tomcat サーブレット コンテナのインスタンスで Web アプリケーションを実行したときに発生するエラーです。これを修正するために、netbeans.conf のヒープ サイズを変更しましたが、それでも同じエラーが表示されます。どうすればこれが起こらないようにできますか?

HTTP ステータス 500 -

-------------------------------------------------- ------------------------------

タイプ例外レポート

メッセージ

サーバーで内部エラー () が発生したため、この要求を実行できませんでした。

例外

javax.servlet.ServletException: サーブレットの実行で例外がスローされました
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


根本的な原因

java.lang.OutOfMemoryError: Java ヒープ領域

note 根本原因の完全なスタック トレースは、Apache Tomcat/5.5.9 ログで入手できます。
4

5 に答える 5

30

netbeans.conf のヒープ サイズを変更すると、NetBeans を介して実行されるアプリケーションではなく、NetBeans 自体のヒープのみが変更されます。

正しい方法は、プロジェクトを右クリックして [プロパティ]、[実行] の順に選択することです。ここで、VM オプションを適切に設定できます (-Xmx256mたとえば、 )。次のようになります。

ヒープサイズの設定
(この写真を見つけてくれたVonCに感謝します。)

于 2009-04-04T18:20:35.070 に答える
9

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"

EclipseでJavaヒープサイズを設定するには? 次の 2 つのオプションがあります。

  1. eclipse-home/eclipse.ini を次のように編集し、Eclipse を再起動します。

    -vmargs-Xms64m-Xmx256m

  2. または、最後に追加オプションを指定して eclipse コマンドを実行することもできます。-vmargs より後のものはすべて JVM オプションとして扱われ、JVM に直接渡されます。このようにコマンド ラインで指定された JVM オプションは、常に eclipse.ini のオプションをオーバーライドします。例えば、

    日食 -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 ランタイムでどのように使用されるかについては、ファイル$ANT_HOME/bin/antまたはを参照してください。%ANT_HOME%\bin\ant.bat

set ANT_OPTS="-Xms512m -Xmx512m" (Windows)export ANT_OPTS="-Xms512m -Xmx512m" (ksh/bash)setenv ANT_OPTS "-Xms512m -Xmx512m" (tcsh/csh) 
于 2012-04-04T10:15:43.607 に答える
7

Tomcat サーバーの仮想メモリを増やせば問題ありません。

手順:

  1. NB で、Windows メニューに移動し、サービスを追加します。
  2. サービスにTomcatが表示されます。Tomcat サーバーを右クリックし、[プロパティ] を選択します。
  3. プロパティのプラットフォームに移動し、-Xms512mVM オプション フィールドに書き込みます。
于 2009-04-06T12:49:46.737 に答える
5

I'm guessing that increasing the memory won't fix the problem. What is that MonitorFilter doing? What's eating up all that memory?

Your best bet is to figure that out. If this is a web app, see if you can turn off that filter and run without it. If you have success, you know that the MonitorFilter is causing your to fail.

于 2009-04-04T18:52:01.250 に答える
3

これは NetBeans とは関係なく (おそらく)、Tomcat と関係があります。Tomcat は、NetBeans ではなく、ヒープを使い果たしているプロセスです。Tomcat の起動プロセスを追跡します。NB にバンドルされている場合、Tomcat は NB インストール内に埋め込まれています。「enterpriseN」ディレクトリを確認してください。N は数字です。Tomcat はおそらくそこにあり、かなり一般的なディストリビューションです。

モニターが OOM で実行されている理由については、言うのは難しいですが、考えてみると非常に単純なプロセスです。また、HTTP モニタリングを無効にして、モニタリング自体に問題があるのか​​、それともアプリケーションに問題があるのか​​を確認することもできます。

于 2009-04-05T05:48:37.477 に答える