2011-09-13 16 views
1

My AxisベースのクライアントプログラムがWebサービスに接続しようとしました。サーバがダウンしているときに、あまり時間をかけたくありません。私は最大3秒待つので、タイムアウトを設定する必要があります。軸の接続タイムアウト

コールクラスには、「CONNECTION_TIMEOUT_PROPERTY」という属性があります。「Axis 'JAXRPC Dynamic Invocation」です。私はそれを使う方法を知らない。セーシェルはウェブをたくさんして、それを行う方法を見つけませんでした。私は動作するために接続タイムアウトを得ることができません。

答えて

1

は私が軸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> 
+0

。どうもありがとう – Aldian

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 

参照:春JaxRpcPortClientInterceptor(およびそのサブクラスJaxRpcPortProxyFactoryBean)を設定するには、このソリューションを使用し、それがperfecltyを働いhttp://ws.apache.org/axis/faq.html#faq17