我们正在使用JAX-WS-RI从SOAP服务下载文档。客户端的峰值堆消耗很大:要下载50MB的附件,jvm需要1.5GB的堆。这很远了。 我搜索了很多关于这个问题的信息。我们已经在使用MTOM请求/响应。流也是由JAX-WS-RI应用的,我可以看到临时文件。 HTTP分块没有帮助。
使用1GB最大堆空间我们得到了一个OutOfMemoryError,在heapdump中我可以看到JAX-WS,SAAJ正在为base64编码创建数百万个String对象。这引入了巨大的开销。
任何提示/建议/解决方法? 更改webservice-stack是一个选项,但不是第一个选项。