我在尝试查找有时为什么忽略soap调用超时的根本原因时遇到了一些麻烦。我也无法在本地复制它。
仅在高峰时段/重载时在生产服务器上发生。超时正在非高峰时段工作。
以下是如何在代码
上设置超时JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(serviceClass);
factory.setAddress(address);
Object object = factory.create();
Client client = ClientProxy.getClient(object);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setReceiveTimeout(10000);
httpClientPolicy.setConnectionTimeout(25000);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
Apache cxf 2.2.5是正在使用的库。
更新库可能不是一个选项,因为这是一个旧项目,更新可能会破坏或带来更多问题。
有什么想法吗?