我的Web服务客户端应用程序使用Apache CXF生成客户端存根,用于与多个Web服务进行通信。生成的CXF Web服务存根对象具有相当大的内存占用(10-15个Web服务对象需要超过64 MB的内存)。是否有办法减少CXF对象的内存占用?
我的Web服务客户端应用程序使用Apache CXF生成客户端存根,用于与多个Web服务进行通信。生成的CXF Web服务存根对象具有相当大的内存占用(10-15个Web服务对象需要超过64 MB的内存)。是否有办法减少CXF对象的内存占用?
我们对CXF客户端采取了不同的方法。我还没有研究过它的内存占用情况,在我们的环境中这不是一个问题,但与创建存根相比,它肯定是一种更简单的开发方法。它看起来像这样:
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
factory.setAddress(endpoint);
factory.getServiceFactory().setDataBinding(new AegisDatabinding());
factory.setServiceClass(myInterface.class);
Object client = factory.create();
((BindingProvider) client).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
myInterface stub = (myInterface)client;