Jer*_*ond 21 java memory web-services cxf jax-ws
我的Web服务客户端应用程序使用Apache CXF生成客户端存根以与多个Web服务进行通信.生成的CXF Web服务存根对象具有相当大的内存占用(10 - 15个Web服务对象占用超过64 MB的内存).有没有办法减少CXF对象的占用空间?
我们在使用 Axis 时也遇到了类似的问题。我们遇到的问题是,我们想要对 Web 服务进行许多并发调用,而使用 WSDL 生成的 Axis 客户端会导致每个客户端使用大量内存。客户端不是线程安全的,因此我们必须为每个请求创建一个客户端。
我们有两个选择。首先,我们可以修剪生成的代码 - 但这出于维护原因并不好。
其次,我们简单地修剪了 WSDL,删除了与我们不相关的部分,并重新生成了瘦身客户端。这样,如果我们调用一个服务方法,它的客户端就不会包含该线程不会使用的大量不相关方法。
工作得很好,但仍然是维护的噩梦,因为每当 WSDL 更新时(例如我们的合作伙伴发布了他们的 Web 服务的新版本),我们都需要花时间创建精简的 wsdls。我认为理想的解决方案是让我们的合作伙伴认识到我们的问题并拥有减少的 WSDL。