轴连接超时



我的基于Axis的客户端程序试图连接到web服务,当服务器关闭时,我不想等待太长时间。我想等待最多3秒,所以我需要设置一个超时

在调用类-Axis的JAXRPC动态调用上有CONNECTION_TIMEOUT_PROPERTY属性。我不知道怎么用。我在网上查了很多,还没找到怎么做。我无法使连接超时工作。

我在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>

我在这里找到了一个通过存根设置超时的方法,它可能对你有帮助。

在org.apache.axis.client.Stub类中有一个setTimeout方法,它是所有发出的stub扩展的类。

下面是如何设置超时给定一个名为Foo的服务:

FooServiceLocator loc = new FooServiceLocator();
FooService binding = loc.getFooService();
org.apache.axis.client.Stub s = (Stub) binding;
s.setTimeout(1000);  // 1 second, in miliseconds

见:http://ws.apache.org/axis/faq.html faq17

我发现这很有效:

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

在这里找到:https://singztechmusings.wordpress.com/2011/05/07/how-to-configure-timeout-duration-at-client-side-for-axis2-web-services/

相关内容

  • 没有找到相关文章

最新更新