axis2 を使用して 2 つのクライアントから呼び出す SOAP Web サービスがあります。Web サービスは、これら 2 つのクライアントのどちらから呼び出しが行われたかを認識できますか? もしそうなら、実行時にそれをどのように知ることができますか? その Web サービスによって特定の Web サービスの呼び出し元の名前を検索するために提供される API はありますか。ありがとう。
質問する
97 次
1 に答える
0
一般的ではありません - HTTP ヘッダーには情報が含まれることがありますが、それはクライアントによって異なります。呼び出し元を特定する最善の方法は、ID などの既知のコンテキストをクライアントとサービスの間で渡すことです。これは、SOAP 本文 (サービスへの引数として)、SOAP ヘッダー、またはトランスポート プロトコルの一部 (HTTP セッション Cookie の使用など) で送信できます。
コンテキストが保持されている場所に応じて、さまざまな動作が可能になります。SOAP 本文では、サービス実装を使用して処理を行うことができます (おそらく DB ルックアップなどを実行します)。SOAPヘッダーでは、コンテキストを必要とするすべてのサービスにヘッダーハンドラーを追加し、サービス呼び出しを正しく設定できることを意味します。トランスポート プロトコルの は、コンテキストが SOAP メッセージから切り離されていることを意味し、トランスポート ハンドラを使用してコンテキストを関連付けることができます。
于 2009-11-11T22:40:26.013 に答える