2

我在 Windows XP 5.1 上的 Java 1.6(即构建 1.6.0-b105)中使用 wsimport,但出现内存不足异常。我曾经使用过 JConsole,似乎 wsimport 进程最大为 64 MB。如何增加 wsimport 的堆内存?

谢谢,

4

6 回答 6

2

对我来说,设置环境变量 WSIMPORT_OPTS(在另一个答案中建议,并且显然在旧版本的 wsimport 中工作)似乎没有任何效果。

对我来说,以下确实有效:而不是wsimport使用

java -classpath $JAVA_HOME/lib/tools.jar com.sun.tools.internal.ws.WsImport

$JAVA_HOMEJDK(不是 JRE)根文件夹在哪里。

然后,您可以在此 Java 命令行上添加所需的任何 JVM 选项。(我需要-Djavax.net.debug=allSSL 信任调试。)

(我使用的是带有 OpenJDK 6 的 Ubuntu,软件包版本为 6b20-1.9.7-0ubuntu1。)

于 2011-05-19T05:27:19.603 回答
1

wsimport 通过 WSIMPORT_OPTS 环境变量接受 JVM 参数。因此,在 Windows 上,尝试在运行 wsimport 之前在命令行上运行“set WSIMPORT_OPTS=-Xmx512M”,以便为 JVM 提供 512Mb 的堆。

于 2010-01-27T00:16:09.470 回答
1

如果您使用的是足够现代的 JDK,则可以使用该-Xnocompile选项,然后javac以通常的方式为进程提供额外的内存。(尝试wsimport --help查看您的版本是否支持该标志。)

于 2010-04-22T06:17:17.683 回答
1

wsimport 似乎能够使用 -J 选项传递 java 参数:

wsimport -J-Xmx1024M ...

应该管用。

于 2012-09-11T20:40:35.333 回答
0

只需执行以下操作(WINDOWS)

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

它应该工作

于 2011-06-10T05:54:33.427 回答
0

我想解决这个问题。最简单的方法是使用 Netbeans(我使用的是 v6.8)。替换 /etc 目录下 Netbeans.conf 中的默认内存设置,如下所示: -J-Xms768m -J-Xmx768m -J-XX:PermSize=128m 并按照通常的方式在 Netbeans 中按照 JAX WS 创建 Web Service Client。从 JConsole 中,我看到在内存中加载 ~18,500 个类往往使用 ~400MB 到 ~650MB。基于我的 WSDL/Schema 生成的类的数量约为 1500 个类。希望这对遇到类似问题的人有所帮助。

于 2010-01-27T18:39:34.223 回答