質問: WSDL2Java スタブを使用する際に、どのようにしてタイムアウトを設定するのですか?
回答: 生成されたスタブ全てが拡張する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秒。ミリ秒で
Axis 1.1 以降のデフォルトのタイムアウトは60秒です。Axis 1.0 にはデフォルトのタイムアウトがありませんでした(つまりデフォルト0秒)。このタイムアウト値は HTTP ソケットに設定されるものであって、Axis 1.1 にはない実装を必要とするコネクションタイムアウトではありません。