2

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

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

它不再使用了吗?

在此先感谢,亲切的问候。

4

2 回答 2

2

最后我发现关于这个问题的错误是我放置CACHED_HTTP_CLIENT参数的地方:

不正确的代码:

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);

Axis2 1.5.1 连接管理

于 2013-10-04T17:41:51.593 回答
1

最后,通过降级Axis2版本解决了这个问题。我的最后一个 pom 指向下一个组件版本:

axis2: 1.4.1
axis2-adb: 1.4.1
axis2-transport-http: 1.5
axis2-transport-local: 1.5
wsdl4j: 1.4

我希望这个独白可以帮助别人。亲切的问候。

PS 我会跟踪 Axis2 1.7,以防我可以帮助他们解决这个简单的问题。

于 2013-09-06T18:06:03.720 回答