wsimport из-за проблем с памятью в Java 1.6 - PullRequest
2 голосов
/ 27 января 2010

Я использую wsimport в Java 1.6 (то есть сборка 1.6.0-b105) в Windows XP 5.1 и получаю исключение нехватки памяти. Я привык к JConsole, и кажется, что процесс wsimport максимально на 64 МБ. Как я могу увеличить кучу памяти для wsimport?

Спасибо

Ответы [ 6 ]

2 голосов
/ 19 мая 2011

Для меня установка переменной среды 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.)

(Я использую Ubuntu с OpenJDK 6, версия пакета 6b20-1.9.7-0ubuntu1.)

1 голос
/ 12 сентября 2012

wsimport, похоже, может передавать аргументы java с помощью опции -J:

wsimport -J-Xmx1024M ...

должно работать.

1 голос
/ 22 апреля 2010

Если вы используете достаточно современный JDK, вы можете использовать опцию -Xnocompile и затем добавить процессу javac дополнительную память обычным способом. (Попробуйте wsimport --help, чтобы увидеть, поддерживает ли ваша версия флаг.)

1 голос
/ 27 января 2010

wsimport принимает аргументы JVM через переменную среды WSIMPORT_OPTS. Поэтому в Windows попробуйте запустить "set WSIMPORT_OPTS = -Xmx512M" в командной строке перед запуском wsimport, чтобы получить JVM 512 МБ кучи.

0 голосов
/ 10 июня 2011

Просто сделайте, как показано ниже (WINDOWS)

set CLASSPATH=<JAVA_HOME>\lib\tools.jar;%classpath%
java -Xmx1024m com.sun.tools.internal.ws.WsImport <YOUR_WSDL>

Это должно работать

0 голосов
/ 27 января 2010

Я решил обойти эту проблему. Самый простой способ - использовать Netbeans (я использую v6.8). Замените настройки памяти по умолчанию в Netbeans.conf в каталоге / etc следующим образом: -J-Xms768m -J-Xmx768m -J-XX: PermSize = 128m и следуйте обычному способу создания клиента веб-службы после JAX WS в Netbeans. Из JConsole я вижу, что загрузка ~ 18 500 классов в целом в памяти имеет тенденцию использовать между ~ 400 МБ и ~ 650 МБ. Количество классов, сгенерированных на основе моих WSDL / схем, составляет ~ 1500 классов. Надеюсь, это поможет кому-то столкнуться с подобной проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...