基于My Axis的客户端程序尝试连接到Web服务,当服务器关闭时,我不想等待太多时间。我想等待最多3秒,所以我需要设置超时。
Call class -Axis'JAXRPC Dynamic Invocation上有属性CONNECTION_TIMEOUT_PROPERTY。我不知道如何使用它。很多网络,并没有找到如何做到这一点。我无法让连接超时工作。
答案 0 :(得分:1)
我在Axis 1.3的客户端代理中使用了这样的定义:
<bean id="serviceTarget" class="com.nxsec.log4ensics.dbmanager.ws.DMJaxRpcPortProxyFactoryBean">
<property name="customPropertyMap"><map>
<entry key="axis.connection.timeout">
<value type="java.lang.Integer">3000</value>
</entry>
</map></property>
</bean>
答案 1 :(得分:1)
我在这里找到了通过存根设置超时的方法,它可能对你有帮助。
org.apache.axis.client.Stub类中有一个setTimeout方法,它是所有发出的存根扩展的类。
以下是如何在给定名为Foo的服务
的情况下设置超时FooServiceLocator loc = new FooServiceLocator();
FooService binding = loc.getFooService();
org.apache.axis.client.Stub s = (Stub) binding;
s.setTimeout(1000); // 1 second, in miliseconds
答案 2 :(得分:0)
我发现这很好用:
long soTimeout = 2 * 60 * 1000; // Two minutes
Stub stub = new TestStub();
stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(soTimeout);
//or
int timeOutInMilliSeconds = 2 * 60 * 1000; // Two minutes
Stub stub = new TestStub();
stub._getServiceClient().getOptions().setProperty(
HTTPConstants.SO_TIMEOUT, timeOutInMilliSeconds);
stub._getServiceClient().getOptions().setProperty(
HTTPConstants.CONNECTION_TIMEOUT, new Integer(timeOutInMilliSeconds));