2009-08-26 16 views
2

Webサービスを使用してリモートサーバーに接続するアプリケーションを作成しています。サーバーがオンラインであるかどうかを判断するためにping関数にメソッドを書きました(つまり、私は呼び出しを行う前にスタブクラスのオプションとして利用可能な2秒のタイムアウトを使って簡単なWebサービスを実行しています.2秒以内にコールを返す必要があります。いくつかのケースでは2秒よりもはるかに長い時間がかかります。軸のクライアントスタブタイムアウトの問題

なぜこのようなことが起こっているのかを知る手助けはできますか?タイムアウト値が保証される方法はありますか?

おかげで、 は、デフォルトのHTTP送信者、コモンズへのスイッチのHTTPクライアントベースの送信者を使用しないでください

+0

コードを含めることはできますか? – stevedbrown

答えて

1

フェル。詳細はこちら - http://wiki.apache.org/ws/FrontPage/Axis/AxisCommonsHTTP - 同じページには、さまざまな種類のタイムアウトの設定方法の詳細があります。

+1

上記の溶液は機能しません。 Axis 1.4とJava 1.7の使用実際には、Axisのタイムアウトのための単一のアプローチはありません..驚き!下記のリンクに記載されているすべてのオプションを試してみる - http://wiki.apache.org/ws/FrontPage/Axis/AxisCommonsHTTP -/- http://www.coderanch.com/t/544075/Web-Services/ java/set-timeout-Axis-client -/- https://samaxes.com/2009/04/axis-14-read-timed-out-and-http-11/ – Santosh

2

Axisクライアントスタブには、タイムアウトを設定するオプションがあります。それを使用することもできます。タイムアウトはミリ秒単位で測定されることに注意してください。 check here

そして、それはAxis2のであれば、あなたは次のように使用することができます:

Stub s = new Stub(); 
ServiceClient sc = s.getServiceClient(); 
Options o = sc.getOptions(); 
o.setTimeOutInMilliSeconds(2000); //2 seconds 
sc.setOptions(o); 
s.setServiceClient(sc); 

あなたは上記のものを設定した後、あなたの呼び出しを行うことができます。

関連する問題