我正在使用像这样的Axis 1.4 Web服务:
FooServiceLocator fooLocator = new FooServiceLocator();
fooLocator.getEngine().setOption("sendMultiRefs", false);
Foo foo = fooLocator.getFooService(new URL(soapServiceUrl));
如何为连接建立和打开的连接设置超时?
(类似于
org.apache.commons.net.SocketClient
setTimeout()
和setSoTimeout()
)?我发现了一个提示,建议设置这样的超时:
((Stub) sPcspService).setTimeout(soapTimeoutSecs * 1000);
但是显式强制转换看起来更像是骇客,而不是官方API的用法。
捕获我找到的引用源代码
但是我既不知道我是否使用
Commons HTTP Client
或另一个,也不知道如何应用此选项。 最佳答案
我以前也使用 Axis 1.4和soap来为您的示例设置 stub 的超时,我将这样做:
FooServiceLocator fooLocator = new FooServiceLocator();
fooLocator.getEngine().setOption("sendMultiRefs", false);
Foo foo = fooLocator.getFooService(new URL(soapServiceUrl));
FooStub binding = (FooStub) foo;
binding.setTimeout(soapTimeoutSecs * 1000);
您的FooStub被扩展到org.apache.axis.client.Stub,如果您通过wsdl2java生成了类,您将已经得到它们。