2010-12-17 15 views
0

WSDLベースのWebサービスとApache Axis 2を使用しています。私はWebサービスの専門家ではなく、私が働いている人は、この特定のWebサービスが動作するには、同じ接続で2つの呼び出しを行う必要があります。つまり、http keep-aliveを使用します(基本的に、「save」メソッドの後に呼び出される必要がある「commit transaction」メソッドです)。これはかなり一般的な問題だと思われるが、私はGoogle上で何も見つけられていない。同じ接続でWebサービスコールを行う

これを行うためにAxisに明示的に指示する方法があるのだろうかと思います。また、2つのコールが実際に同じ接続で行われているかどうかを確認する方法もあります。 wiresharkのようなHTTP監視ソフトウェアが私にこれを伝えるかもしれないと思うが、まだインストールしていない。

答えて

1

あなたの担当者は間違っています。単一のTCP接続で複数の要求を処理するためにキープアライブを使用してHTTPを最適化できたとしても、この最適化は発信者または呼び出し先に対して透過的でなければなりません。クライアントがキープアライブ接続で2つの要求を行った場合、または2つの別々の接続を使用している場合は問題にはなりません。

Javaライブラリ(クライアント側のHttpURLConnectionとサーバー側のサーブレットAPI)は、この情報にアクセスすることさえできないため、使用しているソフトウェアは実際にHTTP要求の実行方法を知ることができません。

+0

残っている唯一の質問は、パラメータを取らないコミットトランザクションメソッドがある場合です。サーバーはトランザクションをどのように知っていますか? Webサービス/ Axisには、各リクエストとともに渡される一意のセッションIDのような、いくつかのセッション追跡メカニズムが含まれていますか?それ以外の場合、私が使っているWebサービスを作成した人は、彼らが何をしているのか分からず、これは起こりそうもありません。 – Otto

0

nmap link textを使用すると、実際に各ポートで何が実行されているかを確認できます。

しかし、同時に2つのコールを行っている場合、axis2はポートが既にバインドされたエラーを投げます。どのポートでも2つのリクエストを同時に処理することはできません(私の意見)。たぶんあなたはそれをキューに入れてそれを連続して行うことができます。しかし、他の情報源でも確認してください。

関連する問題