1

Grails Ws-Client Pluginを使用していますが、アプリケーションはWebサービスを使用しているサーバーからのSOAP応答を待機し、アプリケーションはこのコードから待機します

def proxy = webService.getClient(wsdlUrl)

これは主に、サーバーがダウンしているとき、またはネット接続が遅いときに発生します。

Webサービスがサーバーから一時的に削除され、Webブラウザーでアクセスしようとしたときに、wsdlを含むURLがWebサイトのホームページにリダイレクトされる場合にも、待機は続行されます。

wsdlが存在するかどうかを検出するにはどうすればよいですか。また、プロパティのようにタイムアウトを設定して、応答の待機が10秒間存在し、応答の待機を停止して、ストールの場合にコードが正常に実行を開始するようにするにはどうすればよいですか。

また、例外やエラーも発生しません。

4

1 に答える 1

0

デフォルトでは、クライアントに読み取りタイムアウトや接続タイムアウトが設定されていないようです。これは、Web サービスがダウンしている場合に役立ちます。 proxy.setConnectionTimeout(value_in_milliseconds)

ただし、読み取りタイムアウトの設定についてはわかりません。これは、ホストが稼働していて接続を受け入れているが、Web サービスが利用できないか応答していない場合に表示されるものです。これに対して私たちが見つけた最善の解決策は、デフォルト クライアントの代わりに Apache Commons HTTP クライアントを使用することでした。これにより、クライアントの接続設定をより詳細に構成することができました。WS-Client プラグインにも含まれている可能性がありますが、関連するドキュメント (実際には GroovyWS のドキュメント) には、読み取りタイムアウトについては何も言及されていないようです。

于 2012-05-24T14:52:09.333 に答える