質問
私は、Windows XP上でJava 5.1 1.6(すなわち、ビルド1.6.0-B105)でwsimportのを使用していると私はメモリ不足の例外のうちを取得しています。私はJConsoleのに使用し、wsimportのプロセスが64メガバイトで限界いっぱいまでされているようです。どのように私はwsimportのためのヒープメモリを増やすことができますか?
おかげで、
解決
私は何の影響も与えていないようです(別の答えで提案されている、と明らかにwsimportの古いバージョンの作業)環境変数WSIMPORT_OPTSを設定します。
私にとっては、次ののないの仕事:代わりにwsimport
使用の
java -classpath $JAVA_HOME/lib/tools.jar com.sun.tools.internal.ws.WsImport
$JAVA_HOME
がJDK(JREではない)ルートフォルダであるあなたは、あなたが好きなJVMオプションを追加することができ、このJavaコマンドラインで
。 (私は、SSLトラストデバッグのため-Djavax.net.debug=all
を必要としていました。)
(私はOpenJDKの6とUbuntuの、パッケージのバージョン6b20-1.9.7-0ubuntu1を使用しています。)
他のヒント
wsimportのはWSIMPORT_OPTS環境変数を介してJVM引数を受け付けます。だから、Windows上で、ヒープのJVM 512Mビットを与えることwsimportのを実行する前に、コマンドライン上で「セットWSIMPORT_OPTS = -Xmx512M」を実行してみます。
あなたは十分に近代的なJDKを使っているのであれば、あなたは-Xnocompile
オプションを使用して、追加のメモリを通常の方法をjavac
プロセスを供給することができます。 (お使いのバージョンがフラグをサポートしているかどうかを確認するためにwsimport --help
を試してみてください。)
wsimportの-Jオプションを使用してJavaの引数を通過することができるようです。
wsimport -J-Xmx1024M ...
動作するはずです。
私はこの問題を乗り越えるために考え出しました。最も簡単な方法は、(私はv6.8を使用しています)はNetbeansを使用することです。 -J-Xms768m -J-Xmx768m -J-XX:下の/ etcこのようなディレクトリをnetbeans.confにデフォルトのメモリ設定を元に戻しPermSizeを= 128メートルとNetBeansでJAX WSを、以下のWebサービスクライアントを作成するための通常の方法に従ってください。 JConsoleのことから、私はメモリが〜650メガバイトに〜400メガバイトの間で使用する傾向が全体的にそのロード〜18500回のクラスを参照してください。私のWSDL /スキーマに基づいて生成されたクラスの#は〜1500クラスです。これは同様の問題に実行している誰かのためにお役に立てば幸いです。
ジャスト(WINDOWS)
以下のようにしてください。set CLASSPATH=<JAVA_HOME>\lib\tools.jar;%classpath%
java -Xmx1024m com.sun.tools.internal.ws.WsImport <YOUR_WSDL>
それが動作するはずです。