如何处理MTOM中传送大附件Java heap space错误

java默认的最大内存是64M,当用MTOM传送大附件的时候会出现java heap space错误。

• 一般来说,出现这种错误是程序的逻辑可能有问题,我们可以使用Eclipse Memory Analyzer来监控一下内存状态,找到原因。
• 对于MTOM来说,我们可以通过设置cache来解决这一问题。
服务端的设置

<parameter name="cacheAttachments" locked="false">true</parameter>
	<parameter name="attachmentDIR" locked="false">C:/upload/tep/</parameter>
	<parameter name="sizeThreshold" locked="false">4000</parameter> 

在客户端的设置

stub._getServiceClient().getOptions().setProperty(Constants.Configuration.CACHE_ATTACHMENTS, "true");
           stub._getServiceClient().getOptions().setProperty(Constants.Configuration.ATTACHMENT_TEMP_DIR,  "D:\temp");
           stub._getServiceClient().getOptions().setProperty(Constants.Configuration.FILE_SIZE_THRESHOLD, 4000);

经测试这种方法问题,还没找到解决方法。
• 另一种办法就是加大java的最小内存,用-Xmx来设置。细节
可以在windows 更改系统环境变量加上

JAVA_OPTS=-Xms64m -Xmx512m

这种办法可以发送成功

VN:F [1.9.7_1111]
留下你的评价吧
Rating: 8.0/10 (1 vote cast)
如何处理MTOM中传送大附件Java heap space错误, 8.0 out of 10 based on 1 rating

相关文章

Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*