Java Axis2版本。1.5.4连接超时似乎不起作用
我的Axis2服务客户端ConnectionTimeout持续时间太长[约60秒],验证团队通过断开webservices服务器对应用程序施加压力时,即使使用下一个代码:Java Axis2版本。1.5.4连接超时似乎不起作用,java,axis2,settimeout,webservice-client,Java,Axis2,Settimeout,Webservice Client,我的Axis2服务客户端ConnectionTimeout持续时间太长[约60秒],验证团队通过断开webservices服务器对应用程序施加压力时,即使使用下一个代码: serviceClient.getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, 1000); serviceClient.getOptions().setProperty(HTTPConstants.SO_TIMEOUT, 5000); 我的Axis2组件版本
serviceClient.getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, 1000);
serviceClient.getOptions().setProperty(HTTPConstants.SO_TIMEOUT, 5000);
我的Axis2组件版本是:
axis2: 1.5
axis2-transport-http: 1.5.4
axis2-transport-local: 1.5.4
wsdl4j [if useful]: 1.6.2
它不再使用了吗
提前感谢,问候。最后,通过降级Axis2版本解决了此问题。我的最后一个pom指向下一个组件版本:
axis2: 1.4.1
axis2-adb: 1.4.1
axis2-transport-http: 1.5
axis2-transport-local: 1.5
wsdl4j: 1.4
我希望这段独白对某人有所帮助。
亲切的问候
另外,我将跟踪Axis2 1.7,以防我能帮助他们解决这个简单的问题。最后我发现这个问题的错误之处在于我放置了缓存的\u HTTP\u客户端参数: 错误代码:
serviceClient.getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
ConfigurationContext axisContext;
try {
axisContext = ConfigurationContextFactory.createDefaultConfigurationContext();
} catch (Exception e) {
throw new AxisFault(e.getMessage());
}
axisContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
stub = new MyStub(axisContext, url);
正确代码:
serviceClient.getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
ConfigurationContext axisContext;
try {
axisContext = ConfigurationContextFactory.createDefaultConfigurationContext();
} catch (Exception e) {
throw new AxisFault(e.getMessage());
}
axisContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
stub = new MyStub(axisContext, url);
我认为这是一个错误。比较1.5.4版和1.6版的类/方法AbstractHTTPender.executeMethod时,1.5.4版没有在将主机配置检索到套接字工厂之前定义/调用方法设置超时(msgContext,method)。1.6.2次尝试最糟糕,现在OperationClient在第二次调用时缺少axisConfiguration。只有第一个电话有效。。。如果有任何线索,我们将不胜感激。版本1.6.2中的ConfigurationContext类与1.5.4的不同之处在于前者现在在
terminate()
方法上分配this.axisConfiguration=null
,调用ServiceClient.cleanup()
时调用该方法。这是一个遗留系统,所以我将删除清理调用并祈祷。1.6.2版似乎还没有解决连接超时问题。该参数是在HttpMethod实例的参数中设置的,但在试图通过套接字连接的那一刻,它正在HttpConnection实例的参数中查找该参数,该参数从未传播到HttpConnection实例的参数中。在一些版本更改后,即使在我的回答中说明的版本中,它仍然无法工作。。。几秒钟前我还在研究,我刚刚意识到下一个参数干扰了ConnectionTimeout参数:HTTPConstants.REUSE\u HTTP\u CLIENT