Windows XP5.1のJava1.6(ビルド1.6.0-b105)でwsimportを使用していますが、メモリ不足の例外が発生します。私はJConsoleに慣れていましたが、wsimportプロセスが64MBで最大になっているようです。wsimportのヒープメモリを増やすにはどうすればよいですか?
ありがとう、
私にとって、環境変数WSIMPORT_OPTS(別の回答で提案されており、古いバージョンのwsimportで機能しているようです)を設定しても効果がないようです。
私にとって、以下はwsimport
機能します:使用する代わりに
java -classpath $JAVA_HOME/lib/tools.jar com.sun.tools.internal.ws.WsImport
ここ$JAVA_HOME
で、はJDK(JREではない)ルートフォルダーです。
このJavaコマンドラインで、必要なJVMオプションを追加できます。-Djavax.net.debug=all
( SSL信頼のデバッグに必要でした。)
(私はOpenJDK 6、パッケージバージョン6b20-1.9.7-0ubuntu1でUbuntuを使用しています。)
十分に最新のJDKを使用している場合は、この-Xnocompile
オプションを使用してjavac
、通常の方法でプロセスに追加のメモリを提供できます。(wsimport --help
ご使用のバージョンがフラグをサポートしているかどうかを確認してください。)
wsimportは、WSIMPORT_OPTS環境変数を介してJVM引数を受け入れます。したがって、Windowsでは、wsimportを実行してJVMに512Mbのヒープを与える前に、コマンドラインで「setWSIMPORT_OPTS=-Xmx512M」を実行してみてください。
wsimportは、-Jオプションを使用してJava引数を渡すことができるようです。
wsimport -J-Xmx1024M ...
動作するはずです。
私はこの問題を乗り越えることにしました。最も簡単な方法は、Netbeansを使用することです(私はv6.8を使用しています)。Netbeans.confの/etcディレクトリの下にあるデフォルトのメモリ設定を次のように置き換えます。-J-Xms768m-J-Xmx768m-J-XX:PermSize = 128m通常の方法に従って、NetbeansでJAXWSに従ってWebサービスクライアントを作成します。JConsoleから、メモリに全体で約18,500クラスをロードすると、約400MBから約650MBの間で使用される傾向があることがわかります。私のWSDL/スキーマに基づいて生成されたクラスの数は約1500クラスです。これが同様の問題に遭遇した誰かに役立つことを願っています。
以下のようにしてください(WINDOWS)
set CLASSPATH=<JAVA_HOME>\lib\tools.jar;%classpath%
java -Xmx1024m com.sun.tools.internal.ws.WsImport <YOUR_WSDL>
動作するはずです