Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Axis2版本。1.5.4连接超时似乎不起作用_Java_Axis2_Settimeout_Webservice Client - Fatal编程技术网

Java Axis2版本。1.5.4连接超时似乎不起作用

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组件版本

我的Axis2服务客户端ConnectionTimeout持续时间太长[约60秒],验证团队通过断开webservices服务器对应用程序施加压力时,即使使用下一个代码:

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