2

Swing クライアントを介して使用する CXF Web サービスがあります。最初に を作成しJaxWsProxyFactoryBean、次に JAX WS プロキシを作成します。この時点で、クライアントが Web サービスにメッセージを適切に送信できることをテストしたいと思います。HTTP はステートレス プロトコルであるため、その層で接続を使用しないことを理解しています。これまで、クライアントが接続をテストするために、Web サービスによって定義された ping() メソッドを使用してきました。

それを行う適切な方法は何ですか?接続をテストできるようにするためだけに API にダミー メソッドを追加することが最善の解決策だとは思いません。プロキシを介してそれを行う CXF の方法はありますか?

ありがとう

4

1 に答える 1

2

これを行うには、いくつかのオプションがあります。

  1. WebサービスがSOAPWebサービスであると想定すると、WSDLドキュメントに対してHTTPHEAD要求を発行できます。
  2. Webサービスに特別な「ping」操作(SOAP)を実装します。(おそらくあなたはすでにそれを持っています)

最初のオプションを選択した場合-HTTPHEADリクエストを作成すると、次のコードを使用してそれを実現できます。

public static boolean exists(String webServiceUrl){
    try {
        HttpURLConnection.setFollowRedirects(false);
        HttpURLConnection connection = (HttpURLConnection) new URL(webServiceUrl).openConnection();
        connection.setRequestMethod("HEAD");
        return connection.getResponseCode() == HttpURLConnection.HTTP_OK;
    } catch (Exception e) {      
        return false;
    }
}

Webサービスに対してHEADリクエストを実行する場合、これはWebサービスにアクセスできることを意味します。

于 2013-01-09T21:21:26.827 に答える