cxf 内存泄露问题

genganpeng genganpeng 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public class WSClientFactoryDX { 
private static final WSClientFactoryDX instance = new WSClientFactoryDX();
private static JaxWsProxyFactoryBean dxCicFactoryBean;

static {
WsClientAuthHandler wsClientAuthHandler;
try {
dxCicFactoryBean = new JaxWsProxyFactoryBean();
dxCicFactoryBean.setServiceClass(ICICService.class);
dxCicFactoryBean
.setAddress("https://cic.dealextreme.com/v2.0/Services/CICService.svc");
if (true) {
dxCicFactoryBean.getOutInterceptors().add(
new LoggingOutInterceptor());
dxCicFactoryBean.getInInterceptors().add(
new LoggingInInterceptor());
}
Map<String, Object> cicMap = new HashMap<String, Object>();
cicMap.put(WSHandlerConstants.ACTION,
WSHandlerConstants.USERNAME_TOKEN);
cicMap.put(WSHandlerConstants.USER, "Username");
cicMap.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
wsClientAuthHandler = new WsClientAuthHandler();
wsClientAuthHandler.setUsername("");
wsClientAuthHandler.setPassword("");
cicMap.put(WSHandlerConstants.PW_CALLBACK_REF, wsClientAuthHandler);
WSS4JOutInterceptor cicWSSOut = new WSS4JOutInterceptor(cicMap);
dxCicFactoryBean.getOutInterceptors().add(cicWSSOut);
} catch (Exception ex) {
System.out.print("===method : WSClientFactoryDX Static ERROR==="
+ ex.getMessage());
}
}

public static WSClientFactoryDX getInstance() {
return instance;
}

private WSClientFactoryDX() {
}

public ICICService getDXCICProxyFacgtoryBean() {
return (ICICService) dxCicFactoryBean.create();
}

public static void main(String[] args) {
int mb = 1024*1024;
//Getting the runtime reference from system 
Runtime runtime = Runtime.getRuntime();
System.out.println("Max Memory:" + runtime.maxMemory() / mb+"M");

while(true) {
ICICService icicService = WSClientFactoryDX.getInstance().getDXCICProxyFacgtoryBean();
try {
vRes = icicService.verifyCustomer(vReq);
} catch (Exception ex) {

} finally {

}

System.out.println("Total Memory:" + runtime.totalMemory() / mb+"M");
}
}
}

其中业务代码删除了,主要的代码都在里面。我用这个代码出现了下图的报错

我觉得是dxCicFactoryBean.create创建的对象不能被gc回收,导致内存持续增长。我用mat生成的内存图
...全文

相关推荐

JavaEye论坛热点月报 总第7期

JavaEye论坛热点月报 ,包含各大热点IT技术ajax,ruby,架构,设计,项目管理等等

huangwind205

详解如何使用Jersey客户端请求Spring Boot(RESTFul)服务

本篇文章主要介绍了详解如何使用Jersey客户端请求Spring Boot(RESTFul)服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38644141

科技中介服务机构如何提升技术评估的智能化与专业化水平?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

高校技术转移办公室人员在开展技术推介时,如何高效生成科技成果展示材料?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

产业园区运营负责人如何实现创新资源的高效整合与精准配置?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 10
收藏 已收藏
分享
返回顶部
genganpeng
Web 开发 81,108 成员 341,721 内容